Skip to content
Snippets Groups Projects
Commit 120c87bf authored by Manuel Günther's avatar Manuel Günther
Browse files

Corrected error cases in module creation

parent a73c8cab
No related branches found
No related tags found
No related merge requests found
...@@ -68,23 +68,25 @@ static PyObject* create_module (void) { ...@@ -68,23 +68,25 @@ static PyObject* create_module (void) {
if (PyType_Ready(&PyBobIpFlandmark_Type) < 0) return 0; if (PyType_Ready(&PyBobIpFlandmark_Type) < 0) return 0;
# if PY_VERSION_HEX >= 0x03000000 # if PY_VERSION_HEX >= 0x03000000
PyObject* m = PyModule_Create(&module_definition); PyObject* module = PyModule_Create(&module_definition);
auto module_ = make_xsafe(module);
const char* ret = "O";
# else # else
PyObject* m = Py_InitModule3(BOB_EXT_MODULE_NAME, module_methods, module_docstr); PyObject* module = Py_InitModule3(BOB_EXT_MODULE_NAME, module_methods, module_docstr);
const char* ret = "N";
# endif # endif
if (!m) return 0; if (!module) return 0;
auto m_ = make_safe(m); ///< protects against early returns
/* register the types to python */ /* register the types to python */
Py_INCREF(&PyBobIpFlandmark_Type); Py_INCREF(&PyBobIpFlandmark_Type);
if (PyModule_AddObject(m, "Flandmark", (PyObject *)&PyBobIpFlandmark_Type) < 0) return 0; if (PyModule_AddObject(module, "Flandmark", (PyObject *)&PyBobIpFlandmark_Type) < 0) return 0;
/* imports dependencies */ /* imports dependencies */
if (import_bob_blitz() < 0) return 0; if (import_bob_blitz() < 0) return 0;
if (import_bob_core_logging() < 0) return 0; if (import_bob_core_logging() < 0) return 0;
if (import_bob_io_base() < 0) return 0; if (import_bob_io_base() < 0) return 0;
return Py_BuildValue("O", m); return Py_BuildValue(ret, module);
} }
PyMODINIT_FUNC BOB_EXT_ENTRY_NAME (void) { PyMODINIT_FUNC BOB_EXT_ENTRY_NAME (void) {
......
...@@ -57,21 +57,23 @@ static PyModuleDef module_definition = { ...@@ -57,21 +57,23 @@ static PyModuleDef module_definition = {
static PyObject* create_module (void) { static PyObject* create_module (void) {
# if PY_VERSION_HEX >= 0x03000000 # if PY_VERSION_HEX >= 0x03000000
PyObject* m = PyModule_Create(&module_definition); PyObject* module = PyModule_Create(&module_definition);
auto module_ = make_xsafe(module);
const char* ret = "O";
# else # else
PyObject* m = Py_InitModule3(BOB_EXT_MODULE_NAME, module_methods, module_docstr); PyObject* module = Py_InitModule3(BOB_EXT_MODULE_NAME, module_methods, module_docstr);
const char* ret = "N";
# endif # endif
if (!m) return 0; if (!module) return 0;
auto m_ = make_safe(m); ///< protects against early returns
/* register version numbers and constants */ /* register version numbers and constants */
if (PyModule_AddStringConstant(m, "module", BOB_EXT_MODULE_VERSION) < 0) return 0; if (PyModule_AddStringConstant(module, "module", BOB_EXT_MODULE_VERSION) < 0) return 0;
PyObject* externals = build_version_dictionary(); PyObject* externals = build_version_dictionary();
if (!externals) return 0; if (!externals) return 0;
if (PyModule_AddObject(m, "externals", externals) < 0) return 0; if (PyModule_AddObject(module, "externals", externals) < 0) return 0;
return Py_BuildValue("O", m); return Py_BuildValue(ret, module);
} }
PyMODINIT_FUNC BOB_EXT_ENTRY_NAME (void) { PyMODINIT_FUNC BOB_EXT_ENTRY_NAME (void) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment