diff Objects/moduleobject.c @ 19581:fd48a55ac364 legacy-trunk

Use new GC API.
author Neil Schemenauer <nascheme@enme.ucalgary.ca>
date Wed, 29 Aug 2001 23:54:21 +0000
parents 0e70df98424e
children 3faabf54b8b8
line wrap: on
line diff
--- a/Objects/moduleobject.c	Wed Aug 29 23:54:03 2001 +0000
+++ b/Objects/moduleobject.c	Wed Aug 29 23:54:21 2001 +0000
@@ -19,12 +19,11 @@
 {
 	PyModuleObject *m;
 	PyObject *nameobj;
-	m = PyObject_NEW(PyModuleObject, &PyModule_Type);
+	m = PyObject_GC_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;
 	if (PyDict_SetItemString(m->md_dict, "__name__", nameobj) != 0)
@@ -32,6 +31,7 @@
 	if (PyDict_SetItemString(m->md_dict, "__doc__", Py_None) != 0)
 		goto fail;
 	Py_DECREF(nameobj);
+	PyObject_GC_Track(m);
 	return (PyObject *)m;
 
  fail:
@@ -146,12 +146,12 @@
 static void
 module_dealloc(PyModuleObject *m)
 {
-	PyObject_GC_Fini(m);
+	PyObject_GC_UnTrack(m);
 	if (m->md_dict != NULL) {
 		_PyModule_Clear((PyObject *)m);
 		Py_DECREF(m->md_dict);
 	}
-	PyObject_DEL(PyObject_AS_GC(m));
+	PyObject_GC_Del(m);
 }
 
 static PyObject *
@@ -188,7 +188,7 @@
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,					/* ob_size */
 	"module",				/* tp_name */
-	sizeof(PyModuleObject) + PyGC_HEAD_SIZE, /* tp_size */
+	sizeof(PyModuleObject),			/* tp_size */
 	0,					/* tp_itemsize */
 	(destructor)module_dealloc,		/* tp_dealloc */
 	0,					/* tp_print */
@@ -205,7 +205,7 @@
 	PyObject_GenericGetAttr,		/* tp_getattro */
 	PyObject_GenericSetAttr,		/* tp_setattro */
 	0,					/* tp_as_buffer */
-	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_GC |
+	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
 		Py_TPFLAGS_BASETYPE,		/* tp_flags */
 	0,					/* tp_doc */
 	(traverseproc)module_traverse,		/* tp_traverse */