Kaydet (Commit) 6f53956a authored tarafından Guido van Rossum's avatar Guido van Rossum

Backport:

PyType_Ready(): initialize the base class a bit earlier, so that if we
copy the metatype from the base, the base actually has one!
üst f729ca0b
......@@ -2114,6 +2114,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. */
......@@ -2132,12 +2138,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) {
......
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