From 323a9cfc8384adca677923cf3c65ad62920c76fa Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Wed, 14 Aug 2002 17:26:30 +0000 Subject: [PATCH] PyType_Ready(): initialize the base class a bit earlier, so that if we copy the metatype from the base, the base actually has one! --- Objects/typeobject.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 62f2822a84..145923a2ca 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -2294,6 +2294,12 @@ PyType_Ready(PyTypeObject *type) if (base == NULL && type != &PyBaseObject_Type) base = type->tp_base = &PyBaseObject_Type; + /* Initialize the base class */ + if (base && base->tp_dict == NULL) { + if (PyType_Ready(base) < 0) + goto error; + } + /* Initialize ob_type if NULL. This means extensions that want to be compilable separately on Windows can call PyType_Ready() instead of initializing the ob_type field of their type objects. */ @@ -2312,12 +2318,6 @@ PyType_Ready(PyTypeObject *type) type->tp_bases = bases; } - /* Initialize the base class */ - if (base && base->tp_dict == NULL) { - if (PyType_Ready(base) < 0) - goto error; - } - /* Initialize tp_dict */ dict = type->tp_dict; if (dict == NULL) { -- 2.40.0