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:
Guido van Rossum 2000-11-27 22:22:36 +00:00
parent f8baad0f17
commit 83fb073a03
1 changed files with 2 additions and 1 deletions

View File

@ -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)