diff options
| author | Raymond Hettinger <python@rcn.com> | 2010-08-22 08:39:49 +0000 |
|---|---|---|
| committer | Raymond Hettinger <python@rcn.com> | 2010-08-22 08:39:49 +0000 |
| commit | 819a0645567c452dc92852b36004b51c87154dc7 (patch) | |
| tree | 0913810156f6e503c945c2c918d243167880b2f3 /Python/peephole.c | |
| parent | 9117c751488a98810d758f15b3113527beb920ef (diff) | |
| download | cpython-git-819a0645567c452dc92852b36004b51c87154dc7.tar.gz | |
Issue 8403: Don't mask KeyboardInterrupt during peephole operation.
Diffstat (limited to 'Python/peephole.c')
| -rw-r--r-- | Python/peephole.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/Python/peephole.c b/Python/peephole.c index 7deb02d267..9d06963e2c 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; } |
