diff options
author | Martijn Kaijser <martijn@xbmc.org> | 2018-02-17 00:59:42 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-17 00:59:42 +0100 |
commit | adc0c6113cbf3238f9c6b382c0ca3caaa5ca9a2c (patch) | |
tree | 7c36ad75cfd09529d40f619bb4ab3c9205c79364 | |
parent | c19729a78ced2439cb392287300b20224c109e37 (diff) | |
parent | 5035e8caa4672347a7bfbd7d2172b1b913483fc1 (diff) |
Merge pull request #13554 from romanvm/fix_py_traceback
Python: Normalize Python exception before processing
-rw-r--r-- | xbmc/interfaces/python/swig.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/xbmc/interfaces/python/swig.cpp b/xbmc/interfaces/python/swig.cpp index f7f4d32fa8..74a41aa1de 100644 --- a/xbmc/interfaces/python/swig.cpp +++ b/xbmc/interfaces/python/swig.cpp @@ -176,6 +176,14 @@ namespace PythonBindings if (exc_type == NULL && exc_value == NULL && exc_traceback == NULL) return false; + // See https://docs.python.org/3/c-api/exceptions.html#c.PyErr_NormalizeException + PyErr_NormalizeException(&exc_type, &exc_value, &exc_traceback); +#if PY_MAJOR_VERSION > 2 + if (exc_traceback != NULL) { + PyException_SetTraceback(exc_value, exc_traceback); + } +#endif + exceptionType.clear(); exceptionValue.clear(); exceptionTraceback.clear(); |