They are located next to each other, use identical code.
They should be refactored to be the same thing:
|
static PyObject * |
|
mappingproxy_new_impl(PyTypeObject *type, PyObject *mapping) |
|
/*[clinic end generated code: output=65f27f02d5b68fa7 input=c156df096ef7590c]*/ |
|
{ |
|
mappingproxyobject *mappingproxy; |
|
|
|
if (mappingproxy_check_mapping(mapping) == -1) |
|
return NULL; |
|
|
|
mappingproxy = PyObject_GC_New(mappingproxyobject, &PyDictProxy_Type); |
|
if (mappingproxy == NULL) |
|
return NULL; |
|
mappingproxy->mapping = Py_NewRef(mapping); |
|
_PyObject_GC_TRACK(mappingproxy); |
|
return (PyObject *)mappingproxy; |
|
} |
|
|
|
PyObject * |
|
PyDictProxy_New(PyObject *mapping) |
|
{ |
|
mappingproxyobject *pp; |
|
|
|
if (mappingproxy_check_mapping(mapping) == -1) |
|
return NULL; |
|
|
|
pp = PyObject_GC_New(mappingproxyobject, &PyDictProxy_Type); |
|
if (pp != NULL) { |
|
pp->mapping = Py_NewRef(mapping); |
|
_PyObject_GC_TRACK(pp); |
|
} |
|
return (PyObject *)pp; |
|
} |
Linked PRs
They are located next to each other, use identical code.
They should be refactored to be the same thing:
cpython/Objects/descrobject.c
Lines 1265 to 1296 in 2670cb0
Linked PRs
mappingproxy.__new__to usePyDictProxy_New#152547