Skip to content

Commit 6a4d0d9

Browse files
committed
Do nesting for internal execute hook
1 parent 8776c7e commit 6a4d0d9

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

ext/zend_test/observer.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,12 +298,16 @@ static void zend_test_execute_internal(zend_execute_data *execute_data, zval *re
298298
}
299299
}
300300

301+
ZT_G(observer_nesting_depth)++;
302+
301303
if (zend_test_prev_execute_internal) {
302304
zend_test_prev_execute_internal(execute_data, return_value);
303305
} else {
304306
fbc->internal_function.handler(execute_data, return_value);
305307
}
306308

309+
ZT_G(observer_nesting_depth)--;
310+
307311
if (fbc->common.function_name) {
308312
if (EG(exception)) {
309313
php_printf("%*s<!-- Exception: %s -->\n", 2 * ZT_G(observer_nesting_depth), "", ZSTR_VAL(EG(exception)->ce->name));

ext/zend_test/tests/execute_internal.phpt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ function f($a) {
1414

1515
f(time() > 0 ? [1, 2, 3] : []);
1616

17+
array_map("count", [[], [1, 2]]);
18+
1719
?>
1820
--EXPECTF--
1921
<!-- internal enter time() -->
@@ -23,3 +25,13 @@ f(time() > 0 ? [1, 2, 3] : []);
2325
<!-- internal enter var_dump() -->
2426
int(6)
2527
<!-- internal leave var_dump():NULL -->
28+
<!-- internal enter array_map() -->
29+
<!-- internal enter count() -->
30+
<!-- internal leave count():0 -->
31+
<!-- internal enter count() -->
32+
<!-- internal leave count():2 -->
33+
<!-- internal leave array_map():
34+
array (
35+
0 => 0,
36+
1 => 2,
37+
) -->

0 commit comments

Comments
 (0)