summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
authorNeil Schemenauer <nascheme@enme.ucalgary.ca>2002-03-18 20:45:09 (GMT)
committerNeil Schemenauer <nascheme@enme.ucalgary.ca>2002-03-18 20:45:09 (GMT)
commit08de92a2672a5856788fe944b23e9851d3e0aaba (patch)
tree854b72dada5e7f7530a95860fb5ab24c36dbcdfd /Python
parentd91eec9df3d298a1ffb24b17241ee8af283abf2c (diff)
downloadcpython-08de92a2672a5856788fe944b23e9851d3e0aaba.zip
cpython-08de92a2672a5856788fe944b23e9851d3e0aaba.tar.gz
cpython-08de92a2672a5856788fe944b23e9851d3e0aaba.tar.bz2
Re-enable GC of generator objects.
Diffstat (limited to 'Python')
-rw-r--r--Python/ceval.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/Python/ceval.c b/Python/ceval.c
index dc00e42..ec62350 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -100,14 +100,14 @@ typedef struct {
static PyObject *
gen_new(PyFrameObject *f)
{
- genobject *gen = PyObject_New(genobject, &gentype);
+ genobject *gen = PyObject_GC_New(genobject, &gentype);
if (gen == NULL) {
Py_DECREF(f);
return NULL;
}
gen->gi_frame = f;
gen->gi_running = 0;
- PyObject_GC_Init(gen);
+ _PyObject_GC_TRACK(gen);
return (PyObject *)gen;
}
@@ -120,9 +120,9 @@ gen_traverse(genobject *gen, visitproc visit, void *arg)
static void
gen_dealloc(genobject *gen)
{
- PyObject_GC_Fini(gen);
+ _PyObject_GC_UNTRACK(gen);
Py_DECREF(gen->gi_frame);
- PyObject_Del(gen);
+ PyObject_GC_Del(gen);
}
static PyObject *
@@ -204,7 +204,7 @@ statichere PyTypeObject gentype = {
PyObject_HEAD_INIT(&PyType_Type)
0, /* ob_size */
"generator", /* tp_name */
- sizeof(genobject) + PyGC_HEAD_SIZE, /* tp_basicsize */
+ sizeof(genobject), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
(destructor)gen_dealloc, /* tp_dealloc */
@@ -222,7 +222,7 @@ statichere PyTypeObject gentype = {
PyObject_GenericGetAttr, /* tp_getattro */
0, /* tp_setattro */
0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_GC, /* tp_flags */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
0, /* tp_doc */
(traverseproc)gen_traverse, /* tp_traverse */
0, /* tp_clear */