[Python-checkins] CVS: python/dist/src/Modules newmodule.c,2.31,2.32

Jeremy Hylton jhylton@users.sourceforge.net
Thu, 01 Feb 2001 11:50:31 -0800


Update of /cvsroot/python/python/dist/src/Modules
In directory usw-pr-cvs1:/tmp/cvs-serv8450/Modules

Modified Files:
	newmodule.c 
Log Message:
move extra arguments to the back of the new.code() arglist


Index: newmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/newmodule.c,v
retrieving revision 2.31
retrieving revision 2.32
diff -C2 -r2.31 -r2.32
*** newmodule.c	2001/01/28 03:55:09	2.31
--- newmodule.c	2001/02/01 19:50:28	2.32
***************
*** 104,108 ****
  
  static char new_code_doc[] =
! "Create a code object from (ARGCOUNT, NLOCALS, STACKSIZE, FLAGS, CODESTRING, CONSTANTS, NAMES, VARNAMES, FREEVARS, CELLVARS, FILENAME, NAME, FIRSTLINENO, LNOTAB).";
  
  static PyObject *
--- 104,110 ----
  
  static char new_code_doc[] =
! "Create a code object from (ARGCOUNT, NLOCALS, STACKSIZE, FLAGS, CODESTRING,\n"
! "CONSTANTS, NAMES, VARNAMES, FILENAME, NAME, FIRSTLINENO, LNOTAB, FREEVARS,\n"
! "CELLVARS).";
  
  static PyObject *
***************
*** 117,122 ****
  	PyObject* names;
  	PyObject* varnames;
! 	PyObject* freevars;
! 	PyObject* cellvars;
  	PyObject* filename;
  	PyObject* name;
--- 119,124 ----
  	PyObject* names;
  	PyObject* varnames;
! 	PyObject* freevars = NULL;
! 	PyObject* cellvars = NULL;
  	PyObject* filename;
  	PyObject* name;
***************
*** 125,129 ****
  	PyBufferProcs *pb;
  
! 	if (!PyArg_ParseTuple(args, "iiiiOO!O!O!O!O!SSiS:code",
  			      &argcount, &nlocals, &stacksize, &flags,
  			      &code,
--- 127,131 ----
  	PyBufferProcs *pb;
  
! 	if (!PyArg_ParseTuple(args, "iiiiSO!O!O!SSiS|O!O!:code",
  			      &argcount, &nlocals, &stacksize, &flags,
  			      &code,
***************
*** 131,139 ****
  			      &PyTuple_Type, &names,
  			      &PyTuple_Type, &varnames,
- 			      &PyTuple_Type, &freevars,
- 			      &PyTuple_Type, &cellvars,
  			      &filename, &name,
! 			      &firstlineno, &lnotab))
  		return NULL;
  
  	pb = code->ob_type->tp_as_buffer;
--- 133,156 ----
  			      &PyTuple_Type, &names,
  			      &PyTuple_Type, &varnames,
  			      &filename, &name,
! 			      &firstlineno, &lnotab,
! 			      &PyTuple_Type, &freevars,
! 			      &PyTuple_Type, &cellvars))
  		return NULL;
+ 
+ 	if (freevars == NULL || cellvars == NULL) {
+ 		PyObject *empty = PyTuple_New(0);
+ 		if (empty == NULL)
+ 		    return NULL;
+ 		if (freevars == NULL) {
+ 		    freevars = empty;
+ 		    Py_INCREF(freevars);
+ 		}
+ 		if (cellvars == NULL) {
+ 		    cellvars = empty;
+ 		    Py_INCREF(cellvars);
+ 		}
+ 		Py_DECREF(empty);
+ 	}
  
  	pb = code->ob_type->tp_as_buffer;