mirror of
https://github.com/python/cpython.git
synced 2025-08-23 02:04:56 +00:00
Close #16160: Subclass support now works for types.SimpleNamespace. Thanks to RDM for noticing.
This commit is contained in:
parent
e54c718572
commit
547298c94c
3 changed files with 22 additions and 11 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue