From 245072425d5a4109693f7727c6ab44d90cef0b60 Mon Sep 17 00:00:00 2001 From: Ilija Tovilo Date: Mon, 21 Oct 2024 15:40:45 +0200 Subject: [PATCH] Fix handling of nested generator in zend_test observer This is the counterpart of GH-15952. --- Zend/tests/gh16514.phpt | 55 ++++++++++++++++++++++++++++++++++++++++ ext/zend_test/observer.c | 6 +++++ 2 files changed, 61 insertions(+) create mode 100644 Zend/tests/gh16514.phpt diff --git a/Zend/tests/gh16514.phpt b/Zend/tests/gh16514.phpt new file mode 100644 index 000000000000..9e19160a6861 --- /dev/null +++ b/Zend/tests/gh16514.phpt @@ -0,0 +1,55 @@ +--TEST-- +GH-16514: Nested generator in zend_test observer +--INI-- +zend_test.observer.enabled=1 +zend_test.observer.show_init_backtrace=1 +--FILE-- + +--EXPECTF-- + + + + + + + + + + +#0 %s(%d): Foo->__destruct() +#1 %s(%d): bar() diff --git a/ext/zend_test/observer.c b/ext/zend_test/observer.c index 658498675603..f22061b169b6 100644 --- a/ext/zend_test/observer.c +++ b/ext/zend_test/observer.c @@ -20,6 +20,7 @@ #include "zend_observer.h" #include "zend_smart_str.h" #include "ext/standard/php_var.h" +#include "zend_generators.h" static zend_observer_fcall_handlers observer_fcall_init(zend_execute_data *execute_data); @@ -163,6 +164,11 @@ static void observer_show_init_backtrace(zend_execute_data *execute_data) zend_execute_data *ex = execute_data; php_printf("%*s