@@ -1251,17 +1251,18 @@ insertdict(PyInterpreterState *interp, PyDictObject *mp,
1251
1251
MAINTAIN_TRACKING (mp , key , value );
1252
1252
1253
1253
if (ix == DKIX_EMPTY ) {
1254
- uint64_t new_version = _PyDict_NotifyEvent (
1255
- interp , PyDict_EVENT_ADDED , mp , key , value );
1256
- /* Insert into new slot. */
1257
- mp -> ma_keys -> dk_version = 0 ;
1258
1254
assert (old_value == NULL );
1259
1255
if (mp -> ma_keys -> dk_usable <= 0 ) {
1260
1256
/* Need to resize. */
1261
1257
if (insertion_resize (interp , mp , 1 ) < 0 )
1262
1258
goto Fail ;
1263
1259
}
1264
1260
1261
+ uint64_t new_version = _PyDict_NotifyEvent (
1262
+ interp , PyDict_EVENT_ADDED , mp , key , value );
1263
+ /* Insert into new slot. */
1264
+ mp -> ma_keys -> dk_version = 0 ;
1265
+
1265
1266
Py_ssize_t hashpos = find_empty_slot (mp -> ma_keys , hash );
1266
1267
dictkeys_set_index (mp -> ma_keys , hashpos , mp -> ma_keys -> dk_nentries );
1267
1268
@@ -1335,9 +1336,6 @@ insert_to_emptydict(PyInterpreterState *interp, PyDictObject *mp,
1335
1336
{
1336
1337
assert (mp -> ma_keys == Py_EMPTY_KEYS );
1337
1338
1338
- uint64_t new_version = _PyDict_NotifyEvent (
1339
- interp , PyDict_EVENT_ADDED , mp , key , value );
1340
-
1341
1339
int unicode = PyUnicode_CheckExact (key );
1342
1340
PyDictKeysObject * newkeys = new_keys_object (
1343
1341
interp , PyDict_LOG_MINSIZE , unicode );
@@ -1346,6 +1344,9 @@ insert_to_emptydict(PyInterpreterState *interp, PyDictObject *mp,
1346
1344
Py_DECREF (value );
1347
1345
return -1 ;
1348
1346
}
1347
+ uint64_t new_version = _PyDict_NotifyEvent (
1348
+ interp , PyDict_EVENT_ADDED , mp , key , value );
1349
+
1349
1350
/* We don't decref Py_EMPTY_KEYS here because it is immortal. */
1350
1351
mp -> ma_keys = newkeys ;
1351
1352
mp -> ma_values = NULL ;
@@ -3324,15 +3325,15 @@ PyDict_SetDefault(PyObject *d, PyObject *key, PyObject *defaultobj)
3324
3325
return NULL ;
3325
3326
3326
3327
if (ix == DKIX_EMPTY ) {
3327
- uint64_t new_version = _PyDict_NotifyEvent (
3328
- interp , PyDict_EVENT_ADDED , mp , key , defaultobj );
3329
- mp -> ma_keys -> dk_version = 0 ;
3330
3328
value = defaultobj ;
3331
3329
if (mp -> ma_keys -> dk_usable <= 0 ) {
3332
3330
if (insertion_resize (interp , mp , 1 ) < 0 ) {
3333
3331
return NULL ;
3334
3332
}
3335
3333
}
3334
+ uint64_t new_version = _PyDict_NotifyEvent (
3335
+ interp , PyDict_EVENT_ADDED , mp , key , defaultobj );
3336
+ mp -> ma_keys -> dk_version = 0 ;
3336
3337
Py_ssize_t hashpos = find_empty_slot (mp -> ma_keys , hash );
3337
3338
dictkeys_set_index (mp -> ma_keys , hashpos , mp -> ma_keys -> dk_nentries );
3338
3339
if (DK_IS_UNICODE (mp -> ma_keys )) {
0 commit comments