From 63517577fdcd7c17072e1a612f6d91a35030d571 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 18 Jun 2002 16:44:57 +0000 Subject: Patch from SF bug 570483 (Tim Northover). In a fresh interpreter, type.mro(tuple) would segfault, because PyType_Ready() isn't called for tuple yet. To fix, call PyType_Ready(type) if type->tp_dict is NULL. --- Misc/ACKS | 1 + Objects/typeobject.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/Misc/ACKS b/Misc/ACKS index c7da1b0..fb64941 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -336,6 +336,7 @@ Oscar Nierstrasz Hrvoje Niksic Bill Noon Stefan Norberg +Tim Northover Joe Norton Neal Norwitz Jeffrey Ollie diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 0051179..7918af0 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -742,6 +742,11 @@ mro_implementation(PyTypeObject *type) int i, n, ok; PyObject *bases, *result; + if(type->tp_dict == NULL) { + if(PyType_Ready(type) < 0) + return NULL; + } + bases = type->tp_bases; n = PyTuple_GET_SIZE(bases); result = Py_BuildValue("[O]", (PyObject *)type); -- cgit v0.12