Kaydet (Commit) 5cb8a31d authored tarafından Benjamin Peterson's avatar Benjamin Peterson

cleanup and fix refleaks

üst e0a90829
...@@ -470,8 +470,9 @@ int ...@@ -470,8 +470,9 @@ int
_PyImport_FixupExtensionObject(PyObject *mod, PyObject *name, _PyImport_FixupExtensionObject(PyObject *mod, PyObject *name,
PyObject *filename) PyObject *filename)
{ {
PyObject *modules, *dict, *filename_name; PyObject *modules, *dict, *key;
struct PyModuleDef *def; struct PyModuleDef *def;
int res;
if (extensions == NULL) { if (extensions == NULL) {
extensions = PyDict_New(); extensions = PyDict_New();
if (extensions == NULL) if (extensions == NULL)
...@@ -508,10 +509,12 @@ _PyImport_FixupExtensionObject(PyObject *mod, PyObject *name, ...@@ -508,10 +509,12 @@ _PyImport_FixupExtensionObject(PyObject *mod, PyObject *name,
if (def->m_base.m_copy == NULL) if (def->m_base.m_copy == NULL)
return -1; return -1;
} }
filename_name = PyTuple_Pack(2,filename, name); key = PyTuple_Pack(2, filename, name);
if (filename_name == NULL) if (key == NULL)
return -1; return -1;
if (PyDict_SetItem(extensions, filename_name, (PyObject*)def) < 0) res = PyDict_SetItem(extensions, key, (PyObject *)def);
Py_DECREF(key);
if (res < 0)
return -1; return -1;
return 0; return 0;
} }
...@@ -532,14 +535,15 @@ _PyImport_FixupBuiltin(PyObject *mod, char *name) ...@@ -532,14 +535,15 @@ _PyImport_FixupBuiltin(PyObject *mod, char *name)
PyObject * PyObject *
_PyImport_FindExtensionObject(PyObject *name, PyObject *filename) _PyImport_FindExtensionObject(PyObject *name, PyObject *filename)
{ {
PyObject *mod, *mdict, *filename_name; PyObject *mod, *mdict, *key;
PyModuleDef* def; PyModuleDef* def;
if (extensions == NULL) if (extensions == NULL)
return NULL; return NULL;
filename_name = PyTuple_Pack(2,filename, name); key = PyTuple_Pack(2, filename, name);
if (filename_name == NULL) if (key == NULL)
return NULL; return NULL;
def = (PyModuleDef*)PyDict_GetItem(extensions, filename_name); def = (PyModuleDef *)PyDict_GetItem(extensions, key);
Py_DECREF(key);
if (def == NULL) if (def == NULL)
return NULL; return NULL;
if (def->m_size == -1) { if (def->m_size == -1) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment