]> granicus.if.org Git - python/commitdiff
Plug a memory leak in com_import_stmt(): the tuple created to hold the
authorGuido van Rossum <guido@python.org>
Mon, 27 Nov 2000 22:22:36 +0000 (22:22 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 27 Nov 2000 22:22:36 +0000 (22:22 +0000)
"..." 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.

Python/compile.c

index 77ae001c111452065f70c635c0794acb8c5cf8dd..aca1705b211a853e6afd63a7a6a54fc446be46a1 100644 (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)