We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent dc9006d commit e63dfdeCopy full SHA for e63dfde
include/pybind11/pybind11.h
@@ -794,11 +794,16 @@ class module : public object {
794
explicit module(const char *name, const char *doc = nullptr) {
795
if (!options::show_user_defined_docstrings()) doc = nullptr;
796
#if PY_MAJOR_VERSION >= 3
797
- PyModuleDef *def = new PyModuleDef();
+ PyModuleDef *def = PyMem_New(PyModuleDef, 1);
798
std::memset(def, 0, sizeof(PyModuleDef));
799
def->m_name = name;
800
def->m_doc = doc;
801
def->m_size = -1;
802
+ def->m_free = [](void* module ) {
803
+ if (module != nullptr) {
804
+ Py_XDECREF(PyModule_GetDef((PyObject*) module));
805
+ }
806
+ };
807
Py_INCREF(def);
808
m_ptr = PyModule_Create(def);
809
#else
0 commit comments