Skip to content

Commit e859756

Browse files
committed
Add extra checks for destruction of modules in python loader.
1 parent ca0a712 commit e859756

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

source/loaders/py_loader/source/py_loader_impl.c

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1796,14 +1796,21 @@ void py_loader_impl_module_destroy(loader_impl_py_handle_module module)
17961796
if (module->name != NULL)
17971797
{
17981798
PyObject *system_modules = PySys_GetObject("modules");
1799-
PyObject_DelItem(system_modules, module->name);
1800-
Py_XDECREF(module->name);
1799+
PyObject *item = PyObject_GetItem(system_modules, module->name);
1800+
1801+
if (item != NULL)
1802+
{
1803+
Py_DECREF(item);
1804+
PyObject_DelItem(system_modules, module->name);
1805+
}
1806+
1807+
Py_DECREF(module->name);
18011808
module->name = NULL;
18021809
}
18031810

18041811
if (module->instance != NULL)
18051812
{
1806-
Py_XDECREF(module->instance);
1813+
Py_DECREF(module->instance);
18071814
module->instance = NULL;
18081815
}
18091816
}

0 commit comments

Comments
 (0)