Revert "Fix a memory leak when creating Python3 modules. (#2019)"

This reverts commit 819802da99.
This commit is contained in:
Wenzel Jakob 2019-12-11 21:26:46 +01:00
parent 819802da99
commit fb910ae92b

View File

@ -794,16 +794,11 @@ public:
explicit module(const char *name, const char *doc = nullptr) { explicit module(const char *name, const char *doc = nullptr) {
if (!options::show_user_defined_docstrings()) doc = nullptr; if (!options::show_user_defined_docstrings()) doc = nullptr;
#if PY_MAJOR_VERSION >= 3 #if PY_MAJOR_VERSION >= 3
PyModuleDef *def = PyMem_New(PyModuleDef, 1); PyModuleDef *def = new PyModuleDef();
std::memset(def, 0, sizeof(PyModuleDef)); std::memset(def, 0, sizeof(PyModuleDef));
def->m_name = name; def->m_name = name;
def->m_doc = doc; def->m_doc = doc;
def->m_size = -1; def->m_size = -1;
def->m_free = [](void* module ) {
if (module != nullptr) {
Py_XDECREF(PyModule_GetDef((PyObject*) module));
}
};
Py_INCREF(def); Py_INCREF(def);
m_ptr = PyModule_Create(def); m_ptr = PyModule_Create(def);
#else #else