From 6a4d0d9456bf872286722ad5f043ad4928e92c9a Mon Sep 17 00:00:00 2001 From: ndossche Date: Tue, 20 Jan 2026 15:45:53 +0100 Subject: [PATCH] Do nesting for internal execute hook --- ext/zend_test/observer.c | 4 ++++ ext/zend_test/tests/execute_internal.phpt | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/ext/zend_test/observer.c b/ext/zend_test/observer.c index 9c6bf6b674c..348996b7ac1 100644 --- a/ext/zend_test/observer.c +++ b/ext/zend_test/observer.c @@ -298,12 +298,16 @@ static void zend_test_execute_internal(zend_execute_data *execute_data, zval *re } } + ZT_G(observer_nesting_depth)++; + if (zend_test_prev_execute_internal) { zend_test_prev_execute_internal(execute_data, return_value); } else { fbc->internal_function.handler(execute_data, return_value); } + ZT_G(observer_nesting_depth)--; + if (fbc->common.function_name) { if (EG(exception)) { php_printf("%*s\n", 2 * ZT_G(observer_nesting_depth), "", ZSTR_VAL(EG(exception)->ce->name)); diff --git a/ext/zend_test/tests/execute_internal.phpt b/ext/zend_test/tests/execute_internal.phpt index 3983e6f2b8d..6c7fc757759 100644 --- a/ext/zend_test/tests/execute_internal.phpt +++ b/ext/zend_test/tests/execute_internal.phpt @@ -14,6 +14,8 @@ function f($a) { f(time() > 0 ? [1, 2, 3] : []); +array_map("count", [[], [1, 2]]); + ?> --EXPECTF-- @@ -23,3 +25,13 @@ f(time() > 0 ? [1, 2, 3] : []); int(6) + + + + + +