Skip to content

Refactor mappingproxy_new_impl method to use PyDictProxy_New #152546

Description

@sobolevn

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

Metadata

Metadata

Assignees

Labels

interpreter-core(Objects, Python, Grammar, and Parser dirs)type-refactorCode refactoring (with no changes in behavior)

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions