From ded4bd776f25d892e5dbdc642f3b92aacd43dae1 Mon Sep 17 00:00:00 2001 From: Jeremy Hylton Date: Wed, 21 Mar 2001 19:01:33 +0000 Subject: Update PyNode_CompileSymtable() to understand future statements --- Python/compile.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/Python/compile.c b/Python/compile.c index ed50f7e..cd936a3 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -3780,22 +3780,28 @@ struct symtable * PyNode_CompileSymtable(node *n, char *filename) { struct symtable *st; + PyFutureFeatures *ff; + ff = PyNode_Future(n, filename); + if (ff == NULL) + return NULL; st = symtable_init(); if (st == NULL) return NULL; - assert(st->st_symbols != NULL); + st->st_future = ff; symtable_enter_scope(st, TOP, TYPE(n), n->n_lineno); - if (st->st_errors > 0) { - PySymtable_Free(st); - return NULL; - } + if (st->st_errors > 0) + goto fail; symtable_node(st, n); - if (st->st_errors > 0) { - PySymtable_Free(st); - return NULL; - } + if (st->st_errors > 0) + goto fail; + return st; + fail: + PyMem_Free((void *)ff); + st->st_future = NULL; + PySymtable_Free(st); + return NULL; } static PyCodeObject * -- cgit v0.12