diff options
| author | Victor Stinner <vstinner@python.org> | 2021-01-18 19:47:13 (GMT) |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-18 19:47:13 (GMT) |
| commit | 250035d134ad482e724f73ce654682254b513ee0 (patch) | |
| tree | 48d2b3627adfe0b0e04aaaee25f35f4999cde254 /Objects/moduleobject.c | |
| parent | f7b5bacd7a0b2084ce699eda6f6f4b1adfa16590 (diff) | |
| download | cpython-250035d134ad482e724f73ce654682254b513ee0.zip cpython-250035d134ad482e724f73ce654682254b513ee0.tar.gz cpython-250035d134ad482e724f73ce654682254b513ee0.tar.bz2 | |
bpo-42923: Dump extension modules on fatal error (GH-24207)
The Py_FatalError() function and the faulthandler module now dump the
list of extension modules on a fatal error.
Add _Py_DumpExtensionModules() and _PyModule_IsExtension() internal
functions.
Diffstat (limited to 'Objects/moduleobject.c')
| -rw-r--r-- | Objects/moduleobject.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Objects/moduleobject.c b/Objects/moduleobject.c index 6590387..e57ea86 100644 --- a/Objects/moduleobject.c +++ b/Objects/moduleobject.c @@ -35,6 +35,19 @@ PyTypeObject PyModuleDef_Type = { }; +int +_PyModule_IsExtension(PyObject *obj) +{ + if (!PyModule_Check(obj)) { + return 0; + } + PyModuleObject *module = (PyModuleObject*)obj; + + struct PyModuleDef *def = module->md_def; + return (def != NULL && def->m_methods != NULL); +} + + PyObject* PyModuleDef_Init(struct PyModuleDef* def) { |
