[Python-checkins] python/dist/src/Modules gcmodule.c,2.38,2.39

nascheme@sourceforge.net nascheme@sourceforge.net
Thu, 11 Apr 2002 19:41:05 -0700


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

Modified Files:
	gcmodule.c 
Log Message:
Allow PyObject_Del to be used as a function designator.  Provide binary
compatibility function.

Make PyObject_GC_Track and PyObject_GC_UnTrack functions instead of
trivial macros wrapping functions.  Provide binary compatibility
functions.


Index: gcmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/gcmodule.c,v
retrieving revision 2.38
retrieving revision 2.39
diff -C2 -d -r2.38 -r2.39
*** gcmodule.c	29 Mar 2002 03:04:25 -0000	2.38
--- gcmodule.c	12 Apr 2002 02:41:03 -0000	2.39
***************
*** 811,822 ****
     functions must always be available */
  
  void
! _PyObject_GC_Track(PyObject *op)
  {
  	_PyObject_GC_TRACK(op);
  }
  
  void
! _PyObject_GC_UnTrack(PyObject *op)
  {
  #ifdef WITH_CYCLE_GC
--- 811,834 ----
     functions must always be available */
  
+ #undef PyObject_GC_Track
+ #undef PyObject_GC_UnTrack
+ #undef PyObject_GC_Del
+ #undef _PyObject_GC_Malloc
+ 
  void
! PyObject_GC_Track(void *op)
  {
  	_PyObject_GC_TRACK(op);
  }
  
+ /* for binary compatibility with 2.2 */
  void
! _PyObject_GC_Track(PyObject *op)
! {
!     PyObject_GC_Track(op);
! }
! 
! void
! PyObject_GC_UnTrack(void *op)
  {
  #ifdef WITH_CYCLE_GC
***************
*** 827,838 ****
  }
  
  PyObject *
! _PyObject_GC_Malloc(PyTypeObject *tp, int nitems)
  {
  	PyObject *op;
- 	const size_t basicsize = _PyObject_VAR_SIZE(tp, nitems);
  #ifdef WITH_CYCLE_GC
! 	const size_t nbytes = sizeof(PyGC_Head) + basicsize;
! 	PyGC_Head *g = _PyMalloc_MALLOC(nbytes);
  	if (g == NULL)
  		return (PyObject *)PyErr_NoMemory();
--- 839,855 ----
  }
  
+ /* for binary compatibility with 2.2 */
+ void
+ _PyObject_GC_UnTrack(PyObject *op)
+ {
+     PyObject_GC_UnTrack(op);
+ }
+ 
  PyObject *
! _PyObject_GC_Malloc(size_t basicsize)
  {
  	PyObject *op;
  #ifdef WITH_CYCLE_GC
! 	PyGC_Head *g = PyObject_MALLOC(sizeof(PyGC_Head) + basicsize);
  	if (g == NULL)
  		return (PyObject *)PyErr_NoMemory();
***************
*** 850,854 ****
  	op = FROM_GC(g);
  #else
! 	op = _PyMalloc_MALLOC(basicsize);
  	if (op == NULL)
  		return (PyObject *)PyErr_NoMemory();
--- 867,871 ----
  	op = FROM_GC(g);
  #else
! 	op = PyObject_MALLOC(basicsize);
  	if (op == NULL)
  		return (PyObject *)PyErr_NoMemory();
***************
*** 861,865 ****
  _PyObject_GC_New(PyTypeObject *tp)
  {
! 	PyObject *op = _PyObject_GC_Malloc(tp, 0);
  	return PyObject_INIT(op, tp);
  }
--- 878,882 ----
  _PyObject_GC_New(PyTypeObject *tp)
  {
! 	PyObject *op = _PyObject_GC_Malloc(_PyObject_SIZE(tp));
  	return PyObject_INIT(op, tp);
  }
***************
*** 868,872 ****
  _PyObject_GC_NewVar(PyTypeObject *tp, int nitems)
  {
! 	PyVarObject *op = (PyVarObject *) _PyObject_GC_Malloc(tp, nitems);
  	return PyObject_INIT_VAR(op, tp, nitems);
  }
--- 885,890 ----
  _PyObject_GC_NewVar(PyTypeObject *tp, int nitems)
  {
! 	const size_t size = _PyObject_VAR_SIZE(tp, nitems);
! 	PyVarObject *op = (PyVarObject *) _PyObject_GC_Malloc(size);
  	return PyObject_INIT_VAR(op, tp, nitems);
  }
***************
*** 878,887 ****
  #ifdef WITH_CYCLE_GC
  	PyGC_Head *g = AS_GC(op);
! 	g = _PyMalloc_REALLOC(g,  sizeof(PyGC_Head) + basicsize);
  	if (g == NULL)
  		return (PyVarObject *)PyErr_NoMemory();
  	op = (PyVarObject *) FROM_GC(g);
  #else
! 	op = _PyMalloc_REALLOC(op, basicsize);
  	if (op == NULL)
  		return (PyVarObject *)PyErr_NoMemory();
--- 896,905 ----
  #ifdef WITH_CYCLE_GC
  	PyGC_Head *g = AS_GC(op);
! 	g = PyObject_REALLOC(g,  sizeof(PyGC_Head) + basicsize);
  	if (g == NULL)
  		return (PyVarObject *)PyErr_NoMemory();
  	op = (PyVarObject *) FROM_GC(g);
  #else
! 	op = PyObject_REALLOC(op, basicsize);
  	if (op == NULL)
  		return (PyVarObject *)PyErr_NoMemory();
***************
*** 892,896 ****
  
  void
! _PyObject_GC_Del(PyObject *op)
  {
  #ifdef WITH_CYCLE_GC
--- 910,914 ----
  
  void
! PyObject_GC_Del(void *op)
  {
  #ifdef WITH_CYCLE_GC
***************
*** 901,908 ****
  		allocated--;
  	}
! 	_PyMalloc_FREE(g);
  #else
! 	_PyMalloc_FREE(op);
  #endif
  }
  
--- 919,933 ----
  		allocated--;
  	}
! 	PyObject_FREE(g);
  #else
! 	PyObject_FREE(op);
  #endif
  }
  
+ /* for binary compatibility with 2.2 */
+ #undef _PyObject_GC_Del
+ void
+ _PyObject_GC_Del(PyObject *op)
+ {
+     PyObject_GC_Del(op);
+ }