cpython: e5b24f595235 (original) (raw)
Mercurial > cpython
changeset 102784:e5b24f595235
PyErr_PrintEx() now uses fast call Issue #27128. [#27128]
Victor Stinner victor.stinner@gmail.com | |
---|---|
date | Sat, 20 Aug 2016 00:57:43 +0200 |
parents | 0da1ce362d15 |
children | 154f78d387f9 |
files | Python/pythonrun.c |
diffstat | 1 files changed, 7 insertions(+), 3 deletions(-)[+] [-] Python/pythonrun.c 10 |
line wrap: on
line diff
--- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -630,8 +630,13 @@ PyErr_PrintEx(int set_sys_last_vars) } hook = _PySys_GetObjectId(&PyId_excepthook); if (hook) {
PyObject *args = PyTuple_Pack(3, exception, v, tb);[](#l1.7)
PyObject *result = PyEval_CallObject(hook, args);[](#l1.8)
PyObject* stack[3];[](#l1.9)
PyObject *result;[](#l1.10)
stack[0] = exception;[](#l1.12)
stack[1] = v;[](#l1.13)
stack[2] = tb;[](#l1.14)
result = _PyObject_FastCall(hook, stack, 3, NULL);[](#l1.15) if (result == NULL) {[](#l1.16) PyObject *exception2, *v2, *tb2;[](#l1.17) if (PyErr_ExceptionMatches(PyExc_SystemExit)) {[](#l1.18)
@@ -660,7 +665,6 @@ PyErr_PrintEx(int set_sys_last_vars) Py_XDECREF(tb2); } Py_XDECREF(result);