Close #16160: Subclass support now works for types.SimpleNamespace. Thanks to RDM for noticing.

This commit is contained in:
Eric Snow 2012-10-16 22:35:38 -07:00
parent e54c718572
commit 547298c94c
3 changed files with 22 additions and 11 deletions

View file

@ -21,19 +21,19 @@ static PyMemberDef namespace_members[] = {
static PyObject *
namespace_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
_PyNamespaceObject *ns;
ns = PyObject_GC_New(_PyNamespaceObject, &_PyNamespace_Type);
if (ns == NULL)
return NULL;
PyObject *self;
ns->ns_dict = PyDict_New();
if (ns->ns_dict == NULL) {
Py_DECREF(ns);
return NULL;
assert(type != NULL && type->tp_alloc != NULL);
self = type->tp_alloc(type, 0);
if (self != NULL) {
_PyNamespaceObject *ns = (_PyNamespaceObject *)self;
ns->ns_dict = PyDict_New();
if (ns->ns_dict == NULL) {
Py_DECREF(ns);
return NULL;
}
}
PyObject_GC_Track(ns);
return (PyObject *)ns;
return self;
}