PyAPI: don't use deprecated PyModule_GetFilename

Allows compiling with newer Python versions.
Also add missing decref when compiling as a py-module.
This commit is contained in:
2017-07-17 12:44:03 +10:00
parent 4e22e24689
commit 3d1e5bca88
3 changed files with 20 additions and 3 deletions

View File

@@ -300,7 +300,14 @@ void PyC_FileAndNum(const char **filename, int *lineno)
if (mod_name) {
PyObject *mod = PyDict_GetItem(PyImport_GetModuleDict(), mod_name);
if (mod) {
*filename = PyModule_GetFilename(mod);
PyObject *mod_file = PyModule_GetFilenameObject(mod);
if (mod_file) {
*filename = _PyUnicode_AsString(mod_name);
Py_DECREF(mod_file);
}
else {
PyErr_Clear();
}
}
/* unlikely, fallback */