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

Corrected error cases in module creation

parent 47a7c3b4
No related branches found
No related tags found
No related merge requests found
......@@ -60,11 +60,13 @@ static PyObject* create_module (void) {
# if PY_VERSION_HEX >= 0x03000000
PyObject* module = PyModule_Create(&module_definition);
auto module_ = make_xsafe(module);
const char* ret = "O";
# else
PyObject* module = Py_InitModule3(BOB_EXT_MODULE_NAME, module_methods, module_docstr);
const char* ret = "N";
# endif
if (!module) return 0;
auto module_ = make_safe(module); ///< protects against early returns
if (!init_BobLearnEMGaussian(module)) return 0;
if (!init_BobLearnEMGMMStats(module)) return 0;
......@@ -129,7 +131,7 @@ static PyObject* create_module (void) {
if (import_bob_learn_activation() < 0) return 0;
if (import_bob_learn_linear() < 0) return 0;
return Py_BuildValue("O", module);
return Py_BuildValue(ret, module);
}
PyMODINIT_FUNC BOB_EXT_ENTRY_NAME (void) {
......
......@@ -63,22 +63,24 @@ static PyModuleDef module_definition = {
static PyObject* create_module (void) {
# 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
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
if (!m) return 0;
auto m_ = make_safe(m); ///< protects against early returns
if (!module) return 0;
/* register version numbers and constants */
if (PyModule_AddIntConstant(m, "api", BOB_LEARN_EM_API_VERSION) < 0) return 0;
if (PyModule_AddStringConstant(m, "module", BOB_EXT_MODULE_VERSION) < 0) return 0;
if (PyModule_AddIntConstant(module, "api", BOB_LEARN_EM_API_VERSION) < 0) return 0;
if (PyModule_AddStringConstant(module, "module", BOB_EXT_MODULE_VERSION) < 0) return 0;
PyObject* externals = build_version_dictionary();
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) {
......
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