Skip to content

Commit 00be6e1

Browse files
committed
Look at executing generator for fiber destructor behaviour
1 parent b9bca2d commit 00be6e1

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

Zend/tests/fibers/get-return-after-bailout.phpt

+7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
--TEST--
22
Fiber::getReturn() after bailout
3+
--SKIPIF--
4+
<?php
5+
$zend_mm_enabled = getenv("USE_ZEND_ALLOC");
6+
if ($zend_mm_enabled === "0") {
7+
die("skip Zend MM disabled");
8+
}
9+
?>
310
--FILE--
411
<?php
512

Zend/tests/generators/gh9801.phpt

+7
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22
Bug GH-9801 (Crash when memory limit is exceeded during generator initialization)
33
--INI--
44
memory_limit=16m
5+
--SKIPIF--
6+
<?php
7+
$zend_mm_enabled = getenv("USE_ZEND_ALLOC");
8+
if ($zend_mm_enabled === "0") {
9+
die("skip Zend MM disabled");
10+
}
11+
?>
512
--FILE--
613
<?php
714

Zend/zend_generators.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ static void zend_generator_dtor_storage(zend_object *object) /* {{{ */
225225

226226
/* Generator is running in a suspended fiber.
227227
* Will be dtor during fiber dtor */
228-
if (generator->flags & ZEND_GENERATOR_IN_FIBER) {
228+
if (zend_generator_get_current(generator)->flags & ZEND_GENERATOR_IN_FIBER) {
229229
/* Prevent finally blocks from yielding */
230230
generator->flags |= ZEND_GENERATOR_FORCED_CLOSE;
231231
return;

0 commit comments

Comments
 (0)