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

nascheme@sourceforge.net nascheme@sourceforge.net
2002年4月11日 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);
+ }

AltStyle によって変換されたページ (->オリジナル) /