diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2013-11-23 13:34:05 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2013-11-23 13:34:05 (GMT) |
commit | 7e45d25ecbf1b9e937f5d02793e816e2a1323f9e (patch) | |
tree | 80c1655857459126d35bcde5a7ee9f4372bf6c20 /Python | |
parent | d3113664a2054b2c4e3b0268bdb94fbbe237686c (diff) | |
parent | 514afeb65ca07823431629d4eae470a833ffe0e3 (diff) | |
download | cpython-7e45d25ecbf1b9e937f5d02793e816e2a1323f9e.zip cpython-7e45d25ecbf1b9e937f5d02793e816e2a1323f9e.tar.gz cpython-7e45d25ecbf1b9e937f5d02793e816e2a1323f9e.tar.bz2 |
Merge heads
Diffstat (limited to 'Python')
-rw-r--r-- | Python/ceval.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/Python/ceval.c b/Python/ceval.c index ab419dc..82f0651 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -3850,20 +3850,16 @@ call_exc_trace(Py_tracefunc func, PyObject *self, PyFrameObject *f) { PyObject *type, *value, *traceback, *orig_traceback, *arg; int err; - PyErr_Fetch(&type, &value, &traceback); + PyErr_Fetch(&type, &value, &orig_traceback); if (value == NULL) { value = Py_None; Py_INCREF(value); } - PyErr_NormalizeException(&type, &value, &traceback); - orig_traceback = traceback; - if (traceback == NULL) { - Py_INCREF(Py_None); - traceback = Py_None; - } + PyErr_NormalizeException(&type, &value, &orig_traceback); + traceback = (orig_traceback != NULL) ? orig_traceback : Py_None; arg = PyTuple_Pack(3, type, value, traceback); if (arg == NULL) { - PyErr_Restore(type, value, traceback); + PyErr_Restore(type, value, orig_traceback); return; } err = call_trace(func, self, f, PyTrace_EXCEPTION, arg); |