@@ -2460,33 +2460,32 @@ setitem_lock_held(PyDictObject *mp, PyObject *key, PyObject *value)
24602460
24612461
24622462int
2463- _PyDict_SetItem_KnownHash ( PyObject * op , PyObject * key , PyObject * value ,
2464- Py_hash_t hash )
2463+ _PyDict_SetItem_KnownHash_LockHeld ( PyDictObject * mp , PyObject * key , PyObject * value ,
2464+ Py_hash_t hash )
24652465{
2466- PyDictObject * mp ;
2466+ PyInterpreterState * interp = _PyInterpreterState_GET ();
2467+ if (mp -> ma_keys == Py_EMPTY_KEYS ) {
2468+ return insert_to_emptydict (interp , mp , Py_NewRef (key ), hash , Py_NewRef (value ));
2469+ }
2470+ /* insertdict() handles any resizing that might be necessary */
2471+ return insertdict (interp , mp , Py_NewRef (key ), hash , Py_NewRef (value ));
2472+ }
24672473
2474+ int
2475+ _PyDict_SetItem_KnownHash (PyObject * op , PyObject * key , PyObject * value ,
2476+ Py_hash_t hash )
2477+ {
24682478 if (!PyDict_Check (op )) {
24692479 PyErr_BadInternalCall ();
24702480 return -1 ;
24712481 }
24722482 assert (key );
24732483 assert (value );
24742484 assert (hash != -1 );
2475- mp = (PyDictObject * )op ;
24762485
24772486 int res ;
2478- PyInterpreterState * interp = _PyInterpreterState_GET ();
2479-
2480- Py_BEGIN_CRITICAL_SECTION (mp );
2481-
2482- if (mp -> ma_keys == Py_EMPTY_KEYS ) {
2483- res = insert_to_emptydict (interp , mp , Py_NewRef (key ), hash , Py_NewRef (value ));
2484- }
2485- else {
2486- /* insertdict() handles any resizing that might be necessary */
2487- res = insertdict (interp , mp , Py_NewRef (key ), hash , Py_NewRef (value ));
2488- }
2489-
2487+ Py_BEGIN_CRITICAL_SECTION (op );
2488+ res = _PyDict_SetItem_KnownHash_LockHeld ((PyDictObject * )op , key , value , hash );
24902489 Py_END_CRITICAL_SECTION ();
24912490 return res ;
24922491}
0 commit comments