Kaydet (Commit) f18a7072 authored tarafından Georg Brandl's avatar Georg Brandl

Revert #2990 patch; it's not necessary as Armin showed.

üst 2a9179ac
...@@ -147,7 +147,7 @@ assign_version_tag(PyTypeObject *type) ...@@ -147,7 +147,7 @@ assign_version_tag(PyTypeObject *type)
cannot be done, 1 if Py_TPFLAGS_VALID_VERSION_TAG. cannot be done, 1 if Py_TPFLAGS_VALID_VERSION_TAG.
*/ */
Py_ssize_t i, n; Py_ssize_t i, n;
PyObject *bases, *tmp; PyObject *bases;
if (PyType_HasFeature(type, Py_TPFLAGS_VALID_VERSION_TAG)) if (PyType_HasFeature(type, Py_TPFLAGS_VALID_VERSION_TAG))
return 1; return 1;
...@@ -166,10 +166,9 @@ assign_version_tag(PyTypeObject *type) ...@@ -166,10 +166,9 @@ assign_version_tag(PyTypeObject *type)
are borrowed reference */ are borrowed reference */
for (i = 0; i < (1 << MCACHE_SIZE_EXP); i++) { for (i = 0; i < (1 << MCACHE_SIZE_EXP); i++) {
method_cache[i].value = NULL; method_cache[i].value = NULL;
tmp = method_cache[i].name; Py_XDECREF(method_cache[i].name);
Py_INCREF(Py_None);
method_cache[i].name = Py_None; method_cache[i].name = Py_None;
Py_XDECREF(tmp); Py_INCREF(Py_None);
} }
/* mark all version tags as invalid */ /* mark all version tags as invalid */
PyType_Modified(&PyBaseObject_Type); PyType_Modified(&PyBaseObject_Type);
...@@ -2414,7 +2413,7 @@ PyObject * ...@@ -2414,7 +2413,7 @@ PyObject *
_PyType_Lookup(PyTypeObject *type, PyObject *name) _PyType_Lookup(PyTypeObject *type, PyObject *name)
{ {
Py_ssize_t i, n; Py_ssize_t i, n;
PyObject *mro, *res, *base, *dict, *tmp; PyObject *mro, *res, *base, *dict;
unsigned int h; unsigned int h;
if (MCACHE_CACHEABLE_NAME(name) && if (MCACHE_CACHEABLE_NAME(name) &&
...@@ -2456,10 +2455,9 @@ _PyType_Lookup(PyTypeObject *type, PyObject *name) ...@@ -2456,10 +2455,9 @@ _PyType_Lookup(PyTypeObject *type, PyObject *name)
h = MCACHE_HASH_METHOD(type, name); h = MCACHE_HASH_METHOD(type, name);
method_cache[h].version = type->tp_version_tag; method_cache[h].version = type->tp_version_tag;
method_cache[h].value = res; /* borrowed */ method_cache[h].value = res; /* borrowed */
tmp = method_cache[h].name;
Py_INCREF(name); Py_INCREF(name);
Py_DECREF(method_cache[h].name);
method_cache[h].name = name; method_cache[h].name = name;
Py_DECREF(tmp);
} }
return res; return res;
} }
......
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