| 19976 | static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) |
| 19977 | #else |
| 19978 | static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) |
| 19979 | #endif |
| 19980 | { |
| 19981 | PyObject *local_type = NULL, *local_value, *local_tb = NULL; |
| 19982 | #if CYTHON_FAST_THREAD_STATE |
| 19983 | PyObject *tmp_type, *tmp_value, *tmp_tb; |
| 19984 | #if PY_VERSION_HEX >= 0x030C0000 |
| 19985 | local_value = tstate->current_exception; |
| 19986 | tstate->current_exception = 0; |
| 19987 | #else |
| 19988 | local_type = tstate->curexc_type; |
| 19989 | local_value = tstate->curexc_value; |
| 19990 | local_tb = tstate->curexc_traceback; |
| 19991 | tstate->curexc_type = 0; |
| 19992 | tstate->curexc_value = 0; |
| 19993 | tstate->curexc_traceback = 0; |
| 19994 | #endif |
| 19995 | #elif __PYX_LIMITED_VERSION_HEX > 0x030C0000 |
| 19996 | local_value = PyErr_GetRaisedException(); |
| 19997 | #else |
| 19998 | PyErr_Fetch(&local_type, &local_value, &local_tb); |
| 19999 | #endif |
| 20000 | #if __PYX_LIMITED_VERSION_HEX > 0x030C0000 |
| 20001 | if (likely(local_value)) { |
| 20002 | local_type = (PyObject*) Py_TYPE(local_value); |
| 20003 | Py_INCREF(local_type); |
| 20004 | local_tb = PyException_GetTraceback(local_value); |
| 20005 | } |
| 20006 | #else |
| 20007 | PyErr_NormalizeException(&local_type, &local_value, &local_tb); |
| 20008 | #if CYTHON_FAST_THREAD_STATE |
| 20009 | if (unlikely(tstate->curexc_type)) |
| 20010 | #else |
| 20011 | if (unlikely(PyErr_Occurred())) |
| 20012 | #endif |
| 20013 | goto bad; |
| 20014 | if (local_tb) { |
| 20015 | if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) |
| 20016 | goto bad; |
| 20017 | } |
| 20018 | #endif // __PYX_LIMITED_VERSION_HEX > 0x030C0000 |
| 20019 | Py_XINCREF(local_tb); |
| 20020 | Py_XINCREF(local_type); |
| 20021 | Py_XINCREF(local_value); |
| 20022 | *type = local_type; |
| 20023 | *value = local_value; |
| 20024 | *tb = local_tb; |
| 20025 | #if CYTHON_FAST_THREAD_STATE |
| 20026 | #if CYTHON_USE_EXC_INFO_STACK |
| 20027 | { |
| 20028 | _PyErr_StackItem *exc_info = tstate->exc_info; |
| 20029 | #if PY_VERSION_HEX >= 0x030B00a4 |
| 20030 | tmp_value = exc_info->exc_value; |
| 20031 | exc_info->exc_value = local_value; |
| 20032 | tmp_type = NULL; |
| 20033 | tmp_tb = NULL; |
| 20034 | Py_XDECREF(local_type); |
| 20035 | Py_XDECREF(local_tb); |
no outgoing calls
no test coverage detected