From a082ce40a62e684116049e66c0104263e162694e Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 4 Jun 1991 19:41:56 +0000 Subject: [PATCH] Changed and exported newcodeobject() interface, for ".pyc" files. --- Python/compile.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/Python/compile.c b/Python/compile.c index 5fa405d3ba5..76050031552 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -89,14 +89,12 @@ typeobject Codetype = { 0, /*tp_as_mapping*/ }; -static codeobject *newcodeobject PROTO((object *, object *, object *, char *)); - -static codeobject * +codeobject * newcodeobject(code, consts, names, filename) object *code; object *consts; object *names; - char *filename; + object *filename; { codeobject *co; int i; @@ -123,10 +121,8 @@ newcodeobject(code, consts, names, filename) co->co_consts = consts; INCREF(names); co->co_names = names; - if ((co->co_filename = newstringobject(filename)) == NULL) { - DECREF(co); - co = NULL; - } + INCREF(filename); + co->co_filename = filename; } return co; } @@ -1869,12 +1865,15 @@ compile(n, filename) { struct compiling sc; codeobject *co; + object *v; if (!com_init(&sc, filename)) return NULL; compile_node(&sc, n); com_done(&sc); - if (sc.c_errors == 0) - co = newcodeobject(sc.c_code, sc.c_consts, sc.c_names, filename); + if (sc.c_errors == 0 && (v = newstringobject(filename)) != NULL) { + co = newcodeobject(sc.c_code, sc.c_consts, sc.c_names, v); + DECREF(v); + } else co = NULL; com_free(&sc);