mirror of
https://github.com/python/cpython.git
synced 2025-07-07 19:35:27 +00:00
gh-134160: Use PyModuleDef.m_free in the example module xxlimited (GH-135174)
Co-authored-by: neonene <53406459+neonene@users.noreply.github.com>
This commit is contained in:
parent
e413e26719
commit
1adca08d65
1 changed files with 8 additions and 3 deletions
|
@ -424,6 +424,13 @@ xx_clear(PyObject *module)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
xx_free(void *module)
|
||||||
|
{
|
||||||
|
// allow xx_modexec to omit calling xx_clear on error
|
||||||
|
(void)xx_clear((PyObject *)module);
|
||||||
|
}
|
||||||
|
|
||||||
static struct PyModuleDef xxmodule = {
|
static struct PyModuleDef xxmodule = {
|
||||||
PyModuleDef_HEAD_INIT,
|
PyModuleDef_HEAD_INIT,
|
||||||
.m_name = "xxlimited",
|
.m_name = "xxlimited",
|
||||||
|
@ -433,9 +440,7 @@ static struct PyModuleDef xxmodule = {
|
||||||
.m_slots = xx_slots,
|
.m_slots = xx_slots,
|
||||||
.m_traverse = xx_traverse,
|
.m_traverse = xx_traverse,
|
||||||
.m_clear = xx_clear,
|
.m_clear = xx_clear,
|
||||||
/* m_free is not necessary here: xx_clear clears all references,
|
.m_free = xx_free,
|
||||||
* and the module state is deallocated along with the module.
|
|
||||||
*/
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue