X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FConfig%2FConfig_ModuleReader.cpp;h=526b9965f51aebc1b97b482991fa5d2a1fa2da66;hb=c6a92152ecb67e86489d0a17c8df5fa2e5bcf84e;hp=d0da80ba0a8f0914a27ea7baa8706096f209f066;hpb=dac57cd567b61aa9d889382d5408be80ee82d375;p=modules%2Fshaper.git diff --git a/src/Config/Config_ModuleReader.cpp b/src/Config/Config_ModuleReader.cpp index d0da80ba0..526b9965f 100644 --- a/src/Config/Config_ModuleReader.cpp +++ b/src/Config/Config_ModuleReader.cpp @@ -173,18 +173,21 @@ void Config_ModuleReader::loadScript(const std::string theFileName) { /* aquire python thread */ PyGILState_STATE gstate = PyGILState_Ensure(); - PyObject* module = PyImport_ImportModule(theFileName.c_str()); + PyObject* module = PyImport_ImportModule(theFileName.c_str()); if (!module) { std::string anErrorMsg = "An error occured while importing " + theFileName; //Get detailed error message: if (PyErr_Occurred()) { - PyObject *ptype, *pvalue, *ptraceback; + PyObject *pstr, *ptype, *pvalue, *ptraceback; PyErr_Fetch(&ptype, &pvalue, &ptraceback); - std::string aPyError = std::string(PyString_AsString(pvalue)); + PyErr_NormalizeException(&ptype, &pvalue, &ptraceback); + pstr = PyObject_Str(pvalue); + std::string aPyError = std::string(PyString_AsString(pstr)); if (!aPyError.empty()) { anErrorMsg += ":\n" + aPyError; } + Py_XDECREF(pstr); Py_XDECREF(ptype); Py_XDECREF(pvalue); Py_XDECREF(ptraceback);