[Python-checkins] CVS: python/dist/src/Objects moduleobject.c,2.36,2.37

Neil Schemenauer nascheme@users.sourceforge.net
2001年8月29日 16:53:11 -0700


Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv3870/Objects
Modified Files:
	moduleobject.c 
Log Message:
Use new GC API.
Index: moduleobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/moduleobject.c,v
retrieving revision 2.36
retrieving revision 2.37
diff -C2 -d -r2.36 -r2.37
*** moduleobject.c	2001年08月24日 18:34:26	2.36
--- moduleobject.c	2001年08月29日 23:53:09	2.37
***************
*** 20,29 ****
 	PyModuleObject *m;
 	PyObject *nameobj;
! 	m = PyObject_NEW(PyModuleObject, &PyModule_Type);
 	if (m == NULL)
 		return NULL;
 	nameobj = PyString_FromString(name);
 	m->md_dict = PyDict_New();
- 	PyObject_GC_Init(m);
 	if (m->md_dict == NULL || nameobj == NULL)
 		goto fail;
--- 20,28 ----
 	PyModuleObject *m;
 	PyObject *nameobj;
! 	m = PyObject_GC_New(PyModuleObject, &PyModule_Type);
 	if (m == NULL)
 		return NULL;
 	nameobj = PyString_FromString(name);
 	m->md_dict = PyDict_New();
 	if (m->md_dict == NULL || nameobj == NULL)
 		goto fail;
***************
*** 33,36 ****
--- 32,36 ----
 		goto fail;
 	Py_DECREF(nameobj);
+ 	PyObject_GC_Track(m);
 	return (PyObject *)m;
 
***************
*** 147,156 ****
 module_dealloc(PyModuleObject *m)
 {
! 	PyObject_GC_Fini(m);
 	if (m->md_dict != NULL) {
 		_PyModule_Clear((PyObject *)m);
 		Py_DECREF(m->md_dict);
 	}
! 	PyObject_DEL(PyObject_AS_GC(m));
 }
 
--- 147,156 ----
 module_dealloc(PyModuleObject *m)
 {
! 	PyObject_GC_UnTrack(m);
 	if (m->md_dict != NULL) {
 		_PyModule_Clear((PyObject *)m);
 		Py_DECREF(m->md_dict);
 	}
! 	PyObject_GC_Del(m);
 }
 
***************
*** 189,193 ****
 	0,					/* ob_size */
 	"module",				/* tp_name */
! 	sizeof(PyModuleObject) + PyGC_HEAD_SIZE, /* tp_size */
 	0,					/* tp_itemsize */
 	(destructor)module_dealloc,		/* tp_dealloc */
--- 189,193 ----
 	0,					/* ob_size */
 	"module",				/* tp_name */
! 	sizeof(PyModuleObject),			/* tp_size */
 	0,					/* tp_itemsize */
 	(destructor)module_dealloc,		/* tp_dealloc */
***************
*** 206,210 ****
 	PyObject_GenericSetAttr,		/* tp_setattro */
 	0,					/* tp_as_buffer */
! 	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_GC |
 		Py_TPFLAGS_BASETYPE,		/* tp_flags */
 	0,					/* tp_doc */
--- 206,210 ----
 	PyObject_GenericSetAttr,		/* tp_setattro */
 	0,					/* tp_as_buffer */
! 	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
 		Py_TPFLAGS_BASETYPE,		/* tp_flags */
 	0,					/* tp_doc */

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