Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 08de92a

Browse files
committed
Re-enable GC of generator objects.
1 parent d91eec9 commit 08de92a

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

Python/ceval.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,14 +100,14 @@ typedef struct {
100100
static PyObject *
101101
gen_new(PyFrameObject *f)
102102
{
103-
genobject *gen = PyObject_New(genobject, &gentype);
103+
genobject *gen = PyObject_GC_New(genobject, &gentype);
104104
if (gen == NULL) {
105105
Py_DECREF(f);
106106
return NULL;
107107
}
108108
gen->gi_frame = f;
109109
gen->gi_running = 0;
110-
PyObject_GC_Init(gen);
110+
_PyObject_GC_TRACK(gen);
111111
return (PyObject *)gen;
112112
}
113113

@@ -120,9 +120,9 @@ gen_traverse(genobject *gen, visitproc visit, void *arg)
120120
static void
121121
gen_dealloc(genobject *gen)
122122
{
123-
PyObject_GC_Fini(gen);
123+
_PyObject_GC_UNTRACK(gen);
124124
Py_DECREF(gen->gi_frame);
125-
PyObject_Del(gen);
125+
PyObject_GC_Del(gen);
126126
}
127127

128128
static PyObject *
@@ -204,7 +204,7 @@ statichere PyTypeObject gentype = {
204204
PyObject_HEAD_INIT(&PyType_Type)
205205
0, /* ob_size */
206206
"generator", /* tp_name */
207-
sizeof(genobject) + PyGC_HEAD_SIZE, /* tp_basicsize */
207+
sizeof(genobject), /* tp_basicsize */
208208
0, /* tp_itemsize */
209209
/* methods */
210210
(destructor)gen_dealloc, /* tp_dealloc */
@@ -222,7 +222,7 @@ statichere PyTypeObject gentype = {
222222
PyObject_GenericGetAttr, /* tp_getattro */
223223
0, /* tp_setattro */
224224
0, /* tp_as_buffer */
225-
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_GC, /* tp_flags */
225+
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,/* tp_flags */
226226
0, /* tp_doc */
227227
(traverseproc)gen_traverse, /* tp_traverse */
228228
0, /* tp_clear */

0 commit comments

Comments
 (0)