From d938bb999bef687a7689902c7cd5eb77897f5cf5 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sat, 9 Jun 2018 09:42:13 +0200 Subject: [PATCH] WIP: modifications for Python 3 --- src/pya/pya/pyaModule.cc | 8 +++--- src/pymod/bridge_sample/bridge_sample.cc | 33 ++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/src/pya/pya/pyaModule.cc b/src/pya/pya/pyaModule.cc index 2b5f0f457..2e3ae4db7 100644 --- a/src/pya/pya/pyaModule.cc +++ b/src/pya/pya/pyaModule.cc @@ -2195,14 +2195,16 @@ PythonModule::init (const char *mod_name, const char *description) m_mod_name = pymod_name + "." + mod_name; m_mod_description = description; + PyObject *module = 0; + +#if PY_MAJOR_VERSION < 3 + static PyMethodDef module_methods[] = { {NULL} // Sentinel }; - PyObject *module = 0; - -#if PY_MAJOR_VERSION < 3 module = Py_InitModule3 (m_mod_name.c_str (), module_methods, m_mod_description.c_str ()); + #else struct PyModuleDef mod_def = { diff --git a/src/pymod/bridge_sample/bridge_sample.cc b/src/pymod/bridge_sample/bridge_sample.cc index bcf79530e..d829d617d 100644 --- a/src/pymod/bridge_sample/bridge_sample.cc +++ b/src/pymod/bridge_sample/bridge_sample.cc @@ -146,6 +146,8 @@ static PyMethodDef BridgeMethods[] = { { NULL, NULL, 0, NULL } // terminal }; +#if PY_MAJOR_VERSION < 3 + PyMODINIT_FUNC initbridge_sample () { @@ -160,3 +162,34 @@ initbridge_sample () Py_INCREF (BridgeError); PyModule_AddObject (m, "error", BridgeError); } + +#else + +static +struct PyModuleDef bridge_module = +{ + PyModuleDef_HEAD_INIT, + "bridge_sample", + NULL, + -1, + BridgeMethods +}; + +PyMODINIT_FUNC +PyInit_bridge_sample () +{ + PyObject *m; + + m = PyModule_Create (&bridge_module); + if (m == NULL) { + return NULL; + } + + BridgeError = PyErr_NewException ((char *) "bridge_sample.error", NULL, NULL); + Py_INCREF (BridgeError); + PyModule_AddObject (m, "error", BridgeError); + + return m; +} + +#endif