Skip to content

Commit 2daed5f

Browse files
gh-123504: Fix regression in _tkinter initializer (#123662)
* Add module traverse function to _tkinter. * Set m_size to -1 (instead of 0).
1 parent 0d6b6e3 commit 2daed5f

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

Modules/_tkinter.c

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3390,7 +3390,7 @@ DisableEventHook(void)
33903390
}
33913391

33923392
static int
3393-
module_clear(PyObject *mod)
3393+
module_clear(PyObject *Py_UNUSED(mod))
33943394
{
33953395
Py_CLEAR(Tkinter_TclError);
33963396
Py_CLEAR(Tkapp_Type);
@@ -3399,16 +3399,28 @@ module_clear(PyObject *mod)
33993399
return 0;
34003400
}
34013401

3402+
static int
3403+
module_traverse(PyObject *Py_UNUSED(module), visitproc visit, void *arg)
3404+
{
3405+
Py_VISIT(Tkinter_TclError);
3406+
Py_VISIT(Tkapp_Type);
3407+
Py_VISIT(Tktt_Type);
3408+
Py_VISIT(PyTclObject_Type);
3409+
return 0;
3410+
}
3411+
34023412
static void
34033413
module_free(void *mod)
34043414
{
3405-
module_clear((PyObject *)mod);
3415+
(void)module_clear((PyObject *)mod);
34063416
}
34073417

34083418
static struct PyModuleDef _tkintermodule = {
34093419
PyModuleDef_HEAD_INIT,
34103420
.m_name = "_tkinter",
3421+
.m_size = -1,
34113422
.m_methods = moduleMethods,
3423+
.m_traverse = module_traverse,
34123424
.m_clear = module_clear,
34133425
.m_free = module_free
34143426
};

0 commit comments

Comments
 (0)