Commit 53b97712 authored by Benjamin Peterson's avatar Benjamin Peterson

don't make shared keys with dict subclasses

parent 99e6f875
...@@ -3686,7 +3686,7 @@ _PyObjectDict_SetItem(PyTypeObject *tp, PyObject **dictptr, ...@@ -3686,7 +3686,7 @@ _PyObjectDict_SetItem(PyTypeObject *tp, PyObject **dictptr,
res = PyDict_SetItem(dict, key, value); res = PyDict_SetItem(dict, key, value);
if (cached != ((PyDictObject *)dict)->ma_keys) { if (cached != ((PyDictObject *)dict)->ma_keys) {
/* Either update tp->ht_cached_keys or delete it */ /* Either update tp->ht_cached_keys or delete it */
if (cached->dk_refcnt == 1) { if (cached->dk_refcnt == 1 && PyDict_CheckExact(dict)) {
CACHED_KEYS(tp) = make_keys_shared(dict); CACHED_KEYS(tp) = make_keys_shared(dict);
if (CACHED_KEYS(tp) == NULL) if (CACHED_KEYS(tp) == NULL)
return -1; return -1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment