Skip to content

Commit 6e1b84a

Browse files
committed
Merge branch 'PHP-5.5'
2 parents 239416d + 60871e5 commit 6e1b84a

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

Zend/tests/generators/finally_ran_on_close.phpt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,18 @@ finally is run even if a generator is closed mid-execution
55

66
function gen() {
77
try {
8-
echo "before yield\n";
9-
yield;
10-
echo "after yield\n";
8+
try {
9+
echo "before yield\n";
10+
yield;
11+
echo "after yield\n";
12+
} finally {
13+
echo "finally run\n";
14+
}
15+
echo "code after finally\n";
1116
} finally {
12-
echo "finally run\n";
17+
echo "second finally run\n";
1318
}
14-
15-
echo "code after finally\n";
19+
echo "code after second finally\n";
1620
}
1721

1822
$gen = gen();
@@ -23,3 +27,4 @@ unset($gen);
2327
--EXPECT--
2428
before yield
2529
finally run
30+
second finally run

Zend/zend_generators.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ void zend_generator_close(zend_generator *generator, zend_bool finished_executio
6060
* the resume. */
6161
if (finally_op_num) {
6262
execute_data->opline = &op_array->opcodes[finally_op_num];
63+
execute_data->fast_ret = NULL;
6364
generator->flags |= ZEND_GENERATOR_FORCED_CLOSE;
6465
zend_generator_resume(generator TSRMLS_CC);
6566
return;

0 commit comments

Comments
 (0)