From e4bc7f69c28b7edfbc9ccdf7be6b5249b38f6cbd Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Sat, 17 Jan 2009 21:06:43 +0000 Subject: [PATCH] Issue #4838: When a module is deallocated, free the memory backing the optional module state data. --- Misc/NEWS | 3 +++ Objects/moduleobject.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/Misc/NEWS b/Misc/NEWS index 69c42d27b3f..fee788f7b4e 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -12,6 +12,9 @@ What's New in Python 3.1 alpha 0 Core and Builtins ----------------- +- Issue #4838: When a module is deallocated, free the memory backing the + optional module state data. + - Issue #4910: Rename nb_long slot to nb_reserved, and change its type to (void *). diff --git a/Objects/moduleobject.c b/Objects/moduleobject.c index 9c705b888d2..0c6032fbe85 100644 --- a/Objects/moduleobject.c +++ b/Objects/moduleobject.c @@ -315,6 +315,8 @@ module_dealloc(PyModuleObject *m) _PyModule_Clear((PyObject *)m); Py_DECREF(m->md_dict); } + if (m->md_state != NULL) + PyMem_FREE(m->md_state); Py_TYPE(m)->tp_free((PyObject *)m); }