diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c index e1e81082d9ec..4f05cab375ed 100644 --- a/Modules/_tkinter.c +++ b/Modules/_tkinter.c @@ -3390,7 +3390,7 @@ DisableEventHook(void) } static int -module_clear(PyObject *mod) +module_clear(PyObject *Py_UNUSED(mod)) { Py_CLEAR(Tkinter_TclError); Py_CLEAR(Tkapp_Type); @@ -3399,16 +3399,28 @@ module_clear(PyObject *mod) return 0; } +static int +module_traverse(PyObject *Py_UNUSED(module), visitproc visit, void *arg) +{ + Py_VISIT(Tkinter_TclError); + Py_VISIT(Tkapp_Type); + Py_VISIT(Tktt_Type); + Py_VISIT(PyTclObject_Type); + return 0; +} + static void module_free(void *mod) { - module_clear((PyObject *)mod); + (void)module_clear((PyObject *)mod); } static struct PyModuleDef _tkintermodule = { PyModuleDef_HEAD_INIT, .m_name = "_tkinter", + .m_size = -1, .m_methods = moduleMethods, + .m_traverse = module_traverse, .m_clear = module_clear, .m_free = module_free };