mirror of https://github.com/python/cpython
Plug a memory leak in com_import_stmt(): the tuple created to hold the
"..." in "from M import ..." was never DECREFed. Leak reported by James Slaughter and nailed by Barry, who also provided an earlier version of this patch.
This commit is contained in:
parent
f8baad0f17
commit
83fb073a03
|
@ -2325,11 +2325,11 @@ static void
|
|||
com_import_stmt(struct compiling *c, node *n)
|
||||
{
|
||||
int i;
|
||||
PyObject *tup;
|
||||
REQ(n, import_stmt);
|
||||
/* 'import' dotted_name (',' dotted_name)* |
|
||||
'from' dotted_name 'import' ('*' | NAME (',' NAME)*) */
|
||||
if (STR(CHILD(n, 0))[0] == 'f') {
|
||||
PyObject *tup;
|
||||
/* 'from' dotted_name 'import' ... */
|
||||
REQ(CHILD(n, 1), dotted_name);
|
||||
|
||||
|
@ -2344,6 +2344,7 @@ com_import_stmt(struct compiling *c, node *n)
|
|||
}
|
||||
}
|
||||
com_addoparg(c, LOAD_CONST, com_addconst(c, tup));
|
||||
Py_DECREF(tup);
|
||||
com_push(c, 1);
|
||||
com_addopname(c, IMPORT_NAME, CHILD(n, 1));
|
||||
if (TYPE(CHILD(n, 3)) == STAR)
|
||||
|
|
Loading…
Reference in New Issue