From 903f654ac9116bc5c598c19b9e9c45f5ba9e1a7b Mon Sep 17 00:00:00 2001 From: Jeremy Hylton Date: Thu, 25 Jan 2001 20:07:56 +0000 Subject: [PATCH] PEP 227 implementation Track changes to PyFrame_New() and PyFuntion_New(). --- Modules/newmodule.c | 11 ++++++++--- Modules/pyexpat.c | 6 +++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Modules/newmodule.c b/Modules/newmodule.c index 21b82ef824d..06b7d823b8c 100644 --- a/Modules/newmodule.c +++ b/Modules/newmodule.c @@ -101,7 +101,7 @@ new_function(PyObject* unused, PyObject* args) } static char new_code_doc[] = -"Create a code object from (ARGCOUNT, NLOCALS, STACKSIZE, FLAGS, CODESTRING, CONSTANTS, NAMES, VARNAMES, FILENAME, NAME, FIRSTLINENO, LNOTAB)."; +"Create a code object from (ARGCOUNT, NLOCALS, STACKSIZE, FLAGS, CODESTRING, CONSTANTS, NAMES, VARNAMES, FREEVARS, CELLVARS, FILENAME, NAME, FIRSTLINENO, LNOTAB)."; static PyObject * new_code(PyObject* unused, PyObject* args) @@ -114,18 +114,22 @@ new_code(PyObject* unused, PyObject* args) PyObject* consts; PyObject* names; PyObject* varnames; + PyObject* freevars; + PyObject* cellvars; PyObject* filename; PyObject* name; int firstlineno; PyObject* lnotab; PyBufferProcs *pb; - if (!PyArg_ParseTuple(args, "iiiiOO!O!O!SSiS:code", + if (!PyArg_ParseTuple(args, "iiiiOO!O!O!O!O!SSiS:code", &argcount, &nlocals, &stacksize, &flags, &code, &PyTuple_Type, &consts, &PyTuple_Type, &names, &PyTuple_Type, &varnames, + &PyTuple_Type, &freevars, + &PyTuple_Type, &cellvars, &filename, &name, &firstlineno, &lnotab)) return NULL; @@ -143,7 +147,8 @@ new_code(PyObject* unused, PyObject* args) return (PyObject *)PyCode_New(argcount, nlocals, stacksize, flags, code, consts, names, varnames, - filename, name, firstlineno, lnotab); + freevars, cellvars, filename, name, + firstlineno, lnotab); } static char new_module_doc[] = diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c index cbe0a6eea96..6778a9ca92d 100644 --- a/Modules/pyexpat.c +++ b/Modules/pyexpat.c @@ -257,6 +257,8 @@ getcode(enum HandlerTypes slot, char* func_name, int lineno) nulltuple, /* consts */ nulltuple, /* names */ nulltuple, /* varnames */ + nulltuple, /* freevars */ + nulltuple, /* cellvars */ filename, /* filename */ name, /* name */ lineno, /* firstlineno */ @@ -288,7 +290,9 @@ call_with_frame(PyCodeObject *c, PyObject* func, PyObject* args) tstate, /*back*/ c, /*code*/ tstate->frame->f_globals, /*globals*/ - NULL); /*locals*/ + NULL, /*locals*/ + 0, + NULL); /* closure */ if (f == NULL) return NULL; tstate->frame = f;