summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2012-04-24 14:32:57 (GMT)
committerBenjamin Peterson <benjamin@python.org>2012-04-24 14:32:57 (GMT)
commit7ce67e45f89d5d4955c4f72a64631aa9b56b8471 (patch)
tree5adf7621faeca5c97bf110a1957a6c10ba5c13f2
parent01296da8df89a6a710cc883902079cbdc2601b85 (diff)
downloadcpython-7ce67e45f89d5d4955c4f72a64631aa9b56b8471.zip
cpython-7ce67e45f89d5d4955c4f72a64631aa9b56b8471.tar.gz
cpython-7ce67e45f89d5d4955c4f72a64631aa9b56b8471.tar.bz2
fix dict gc tracking (#13903)
-rw-r--r--Objects/dictobject.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index 51a8796..6eb9b25 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -2022,6 +2022,8 @@ PyDict_Copy(PyObject *o)
Py_XINCREF(value);
split_copy->ma_values[i] = value;
}
+ if (_PyObject_GC_IS_TRACKED(mp))
+ _PyObject_GC_TRACK(split_copy);
return (PyObject *)split_copy;
}
copy = PyDict_New();
@@ -2220,6 +2222,7 @@ dict_setdefault(register PyDictObject *mp, PyObject *args)
return NULL;
ep = find_empty_slot(mp, key, hash, &value_addr);
}
+ MAINTAIN_TRACKING(mp, key, failobj);
ep->me_key = key;
ep->me_hash = hash;
*value_addr = failobj;