Mercurial > cpython-lru_cache-weakref
diff Python/compile.c @ 266:b5826bf29677 legacy-trunk
Changed and exported newcodeobject() interface, for ".pyc" files.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Tue, 04 Jun 1991 19:41:56 +0000 |
| parents | fd816ed17e35 |
| children | 149dd121d0a6 |
line wrap: on
line diff
--- a/Python/compile.c Tue Jun 04 19:40:59 1991 +0000 +++ b/Python/compile.c Tue Jun 04 19:41:56 1991 +0000 @@ -89,14 +89,12 @@ 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 @@ 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 @@ { 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);
