From: Raymond Hettinger Date: Sun, 22 Aug 2010 08:39:49 +0000 (+0000) Subject: Issue 8403: Don't mask KeyboardInterrupt during peephole operation. X-Git-Tag: v3.2a2~175 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=819a0645567c452dc92852b36004b51c87154dc7;p=thirdparty%2FPython%2Fcpython.git Issue 8403: Don't mask KeyboardInterrupt during peephole operation. --- diff --git a/Python/peephole.c b/Python/peephole.c index 7deb02d267a5..9d06963e2cf3 100644 --- a/Python/peephole.c +++ b/Python/peephole.c @@ -159,13 +159,16 @@ fold_binops_on_constants(unsigned char *codestr, PyObject *consts) return 0; } if (newconst == NULL) { - PyErr_Clear(); + if(!PyErr_ExceptionMatches(PyExc_KeyboardInterrupt)) + PyErr_Clear(); return 0; } size = PyObject_Size(newconst); - if (size == -1) + if (size == -1) { + if (PyErr_ExceptionMatches(PyExc_KeyboardInterrupt)) + return 0; PyErr_Clear(); - else if (size > 20) { + } else if (size > 20) { Py_DECREF(newconst); return 0; } @@ -219,7 +222,8 @@ fold_unaryops_on_constants(unsigned char *codestr, PyObject *consts) return 0; } if (newconst == NULL) { - PyErr_Clear(); + if(!PyErr_ExceptionMatches(PyExc_KeyboardInterrupt)) + PyErr_Clear(); return 0; }