]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Set parse tree in parser data structure to NULL when returning
authorGuido van Rossum <guido@python.org>
Sun, 18 Nov 1990 17:39:41 +0000 (17:39 +0000)
committerGuido van Rossum <guido@python.org>
Sun, 18 Nov 1990 17:39:41 +0000 (17:39 +0000)
a valid parse tree to caller, so caller must free the tree.

Parser/parsetok.c

index 01877a143106f846687d840f58fa6cfbec7e089c..100ca658fa7f4a86a5f5ed474b59cb58bcdda572 100644 (file)
@@ -53,8 +53,10 @@ parsetok(tok, g, start, n_ret)
                str[len] = '\0';
                ret = addtoken(ps, (int)type, str);
                if (ret != E_OK) {
-                       if (ret == E_DONE)
+                       if (ret == E_DONE) {
                                *n_ret = ps->p_tree;
+                               ps->p_tree = NULL;
+                       }
                        else if (tok->lineno <= 1 && tok->done == E_EOF)
                                ret = E_EOF;
                        break;
@@ -112,8 +114,7 @@ parsefile(fp, g, start, ps1, ps2, n_ret)
        ret = parsetok(tok, g, start, n_ret);
        if (ret == E_TOKEN || ret == E_SYNTAX) {
                char *p;
-               fprintf(stderr, "Parsing error at line %d:\n",
-                       tok->lineno);
+               fprintf(stderr, "Parsing error at line %d:\n", tok->lineno);
                *tok->inp = '\0';
                if (tok->inp > tok->buf && tok->inp[-1] == '\n')
                        tok->inp[-1] = '\0';