From: Guido van Rossum Date: Fri, 14 Jun 2002 02:27:07 +0000 (+0000) Subject: Inexplicably, recurse_down_subclasses() was comparing the object X-Git-Tag: v2.3c1~5315 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=59e6c539207346398f02820ed1d80e3245112179;p=python Inexplicably, recurse_down_subclasses() was comparing the object gotten from a weak reference to NULL instead of to None. This caused the following assert() to fail (but only in 2.2 in the debug build -- I have to find a better test case). Will backport. --- diff --git a/Objects/typeobject.c b/Objects/typeobject.c index b9890eaf45..0051179c2f 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -4029,7 +4029,8 @@ recurse_down_subclasses(PyTypeObject *type, slotdef **pp, PyObject *name) ref = PyList_GET_ITEM(subclasses, i); assert(PyWeakref_CheckRef(ref)); subclass = (PyTypeObject *)PyWeakref_GET_OBJECT(ref); - if (subclass == NULL) + assert(subclass != NULL); + if ((PyObject *)subclass == Py_None) continue; assert(PyType_Check(subclass)); /* Avoid recursing down into unaffected classes */