Skip to content

Commit 06308d2

Browse files
authored
Merge pull request #6 from kumaraditya303/pep646-tuple
fix gc
2 parents 7f06e2a + 6bf3caa commit 06308d2

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

Objects/genericaliasobject.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -659,14 +659,24 @@ ga_iternext(gaiterobject *gi) {
659659
static void
660660
ga_iter_dealloc(gaiterobject *gi) {
661661
PyObject_GC_UnTrack(gi);
662+
Py_XDECREF(gi->obj);
662663
PyObject_GC_Del(gi);
663664
}
664665

666+
static int
667+
ga_iter_traverse(gaiterobject *gi, visitproc visit, void *arg)
668+
{
669+
Py_VISIT(gi->obj);
670+
return 0;
671+
}
672+
665673
static PyTypeObject Py_GenericAliasIterType = {
666674
PyVarObject_HEAD_INIT(&PyType_Type, 0)
667-
.tp_name = "generic_alias_iter",
675+
.tp_name = "generic_alias_iterator",
668676
.tp_basicsize = sizeof(gaiterobject),
677+
.tp_iter = PyObject_SelfIter,
669678
.tp_iternext = (iternextfunc)ga_iternext,
679+
.tp_traverse = (traverseproc)ga_iter_traverse,
670680
.tp_dealloc = (destructor)ga_iter_dealloc,
671681
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
672682
};

0 commit comments

Comments
 (0)