It is similar to the more general code in the gc module, but
here we know the name of the module.
https://bugs.python.org/issue33714
Automerge-Triggered-By: @encukou
PyObject_GC_UnTrack(m);
if (verbose && m->md_name) {
- PySys_FormatStderr("# destroy %S\n", m->md_name);
+ PySys_FormatStderr("# destroy %U\n", m->md_name);
}
if (m->md_weaklist != NULL)
PyObject_ClearWeakRefs((PyObject *) m);
{
if (m->md_def && m->md_def->m_clear) {
int res = m->md_def->m_clear((PyObject*)m);
+ if (PyErr_Occurred()) {
+ PySys_FormatStderr("Exception ignored in m_clear of module%s%V\n",
+ m->md_name ? " " : "",
+ m->md_name, "");
+ PyErr_WriteUnraisable(NULL);
+ }
if (res)
return res;
}