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

Neil Schemenauer nascheme@users.sourceforge.net
Wed, 29 Aug 2001 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 */