Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 5cb8a31

Browse files
committed
cleanup and fix refleaks
1 parent e0a9082 commit 5cb8a31

1 file changed

Lines changed: 12 additions & 8 deletions

File tree

Python/import.c

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -470,8 +470,9 @@ int
470470
_PyImport_FixupExtensionObject(PyObject *mod, PyObject *name,
471471
PyObject *filename)
472472
{
473-
PyObject *modules, *dict, *filename_name;
473+
PyObject *modules, *dict, *key;
474474
struct PyModuleDef *def;
475+
int res;
475476
if (extensions == NULL) {
476477
extensions = PyDict_New();
477478
if (extensions == NULL)
@@ -508,10 +509,12 @@ _PyImport_FixupExtensionObject(PyObject *mod, PyObject *name,
508509
if (def->m_base.m_copy == NULL)
509510
return -1;
510511
}
511-
filename_name = PyTuple_Pack(2,filename, name);
512-
if (filename_name == NULL)
512+
key = PyTuple_Pack(2, filename, name);
513+
if (key == NULL)
513514
return -1;
514-
if (PyDict_SetItem(extensions, filename_name, (PyObject*)def) < 0)
515+
res = PyDict_SetItem(extensions, key, (PyObject *)def);
516+
Py_DECREF(key);
517+
if (res < 0)
515518
return -1;
516519
return 0;
517520
}
@@ -532,14 +535,15 @@ _PyImport_FixupBuiltin(PyObject *mod, char *name)
532535
PyObject *
533536
_PyImport_FindExtensionObject(PyObject *name, PyObject *filename)
534537
{
535-
PyObject *mod, *mdict, *filename_name;
538+
PyObject *mod, *mdict, *key;
536539
PyModuleDef* def;
537540
if (extensions == NULL)
538541
return NULL;
539-
filename_name = PyTuple_Pack(2,filename, name);
540-
if (filename_name == NULL)
542+
key = PyTuple_Pack(2, filename, name);
543+
if (key == NULL)
541544
return NULL;
542-
def = (PyModuleDef*)PyDict_GetItem(extensions, filename_name);
545+
def = (PyModuleDef *)PyDict_GetItem(extensions, key);
546+
Py_DECREF(key);
543547
if (def == NULL)
544548
return NULL;
545549
if (def->m_size == -1) {

0 commit comments

Comments
 (0)