From: Guido van Rossum Date: Mon, 10 Sep 2001 18:27:43 +0000 (+0000) Subject: PyObject_Dir(): X-Git-Tag: v2.2.1c1~1881 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8dbd3d8c50e4f4c96f2466ad18ca33b2af4fe240;p=thirdparty%2FPython%2Fcpython.git PyObject_Dir(): - use PyModule_Check() instead of PyObject_TypeCheck(), now we can. - don't assert that the __dict__ gotten out of a module is always a dictionary; check its type, and raise an exception if it's not. --- diff --git a/Objects/object.c b/Objects/object.c index 365d1313f796..704ffc13b284 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -1424,11 +1424,15 @@ PyObject_Dir(PyObject *arg) } /* Elif this is some form of module, we only want its dict. */ - else if (PyObject_TypeCheck(arg, &PyModule_Type)) { + else if (PyModule_Check(arg)) { masterdict = PyObject_GetAttrString(arg, "__dict__"); if (masterdict == NULL) goto error; - assert(PyDict_Check(masterdict)); + if (!PyDict_Check(masterdict)) { + PyErr_SetString(PyExc_TypeError, + "module.__dict__ is not a dictionary"); + goto error; + } } /* Elif some form of type or class, grab its dict and its bases.