summaryrefslogtreecommitdiff
path: root/Python
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2015-01-31 12:23:01 +0200
committerSerhiy Storchaka <storchaka@gmail.com>2015-01-31 12:23:01 +0200
commit260cd320a1087fa040743fd46dd0d2c412a0ba17 (patch)
tree8e659c6cdce73d40c7bc31434cc69c1eb5345327 /Python
parent08448a1f4d57e4dd35936b9e43259438d3246c06 (diff)
parent13a1c6022b72cab0ff45a4e7b71305ed25ad9490 (diff)
downloadcpython-git-260cd320a1087fa040743fd46dd0d2c412a0ba17.tar.gz
Merge heads
Diffstat (limited to 'Python')
-rw-r--r--Python/ceval.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/Python/ceval.c b/Python/ceval.c
index e92a339432..e09ff3423c 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1189,8 +1189,8 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
f->f_stacktop = NULL; /* remains NULL unless yield suspends frame */
f->f_executing = 1;
- if (co->co_flags & CO_GENERATOR && !throwflag) {
- if (f->f_exc_type != NULL && f->f_exc_type != Py_None) {
+ if (co->co_flags & CO_GENERATOR) {
+ if (!throwflag && f->f_exc_type != NULL && f->f_exc_type != Py_None) {
/* We were in an except handler when we left,
restore the exception state which was put aside
(see YIELD_VALUE). */
@@ -3196,7 +3196,8 @@ fast_block_end:
|| (retval == NULL && PyErr_Occurred()));
fast_yield:
- if (co->co_flags & CO_GENERATOR && (why == WHY_YIELD || why == WHY_RETURN)) {
+ if (co->co_flags & CO_GENERATOR) {
+
/* The purpose of this block is to put aside the generator's exception
state and restore that of the calling frame. If the current
exception state is from the caller, we clear the exception values