They are located next to each other, use identical code.
They should be refactored to be the same thing:
| staticPyObject* |
| mappingproxy_new_impl(PyTypeObject*type, PyObject*mapping) |
| /*[clinic end generated code: output=65f27f02d5b68fa7 input=c156df096ef7590c]*/ |
| { |
| mappingproxyobject*mappingproxy; |
| |
| if (mappingproxy_check_mapping(mapping) ==-1) |
| returnNULL; |
| |
| mappingproxy=PyObject_GC_New(mappingproxyobject, &PyDictProxy_Type); |
| if (mappingproxy==NULL) |
| returnNULL; |
| 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) |
| returnNULL; |
| |
| 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