summaryrefslogtreecommitdiff
path: root/ext/zend_test/test.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/zend_test/test.c')
-rw-r--r--ext/zend_test/test.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/ext/zend_test/test.c b/ext/zend_test/test.c
index b6f848c5b7..c44fdb481f 100644
--- a/ext/zend_test/test.c
+++ b/ext/zend_test/test.c
@@ -39,6 +39,7 @@ ZEND_BEGIN_MODULE_GLOBALS(zend_test)
int observer_show_init_backtrace;
int observer_show_opcode;
int observer_nesting_depth;
+ int replace_zend_execute_ex;
ZEND_END_MODULE_GLOBALS(zend_test)
ZEND_DECLARE_MODULE_GLOBALS(zend_test)
@@ -332,10 +333,17 @@ PHP_INI_BEGIN()
STD_PHP_INI_BOOLEAN("zend_test.observer.show_return_value", "0", PHP_INI_SYSTEM, OnUpdateBool, observer_show_return_value, zend_zend_test_globals, zend_test_globals)
STD_PHP_INI_BOOLEAN("zend_test.observer.show_init_backtrace", "0", PHP_INI_SYSTEM, OnUpdateBool, observer_show_init_backtrace, zend_zend_test_globals, zend_test_globals)
STD_PHP_INI_BOOLEAN("zend_test.observer.show_opcode", "0", PHP_INI_SYSTEM, OnUpdateBool, observer_show_opcode, zend_zend_test_globals, zend_test_globals)
+ STD_PHP_INI_BOOLEAN("zend_test.replace_zend_execute_ex", "0", PHP_INI_SYSTEM, OnUpdateBool, replace_zend_execute_ex, zend_zend_test_globals, zend_test_globals)
PHP_INI_END()
static zend_observer_fcall_handlers observer_fcall_init(zend_execute_data *execute_data);
+void (*old_zend_execute_ex)(zend_execute_data *execute_data);
+static void custom_zend_execute_ex(zend_execute_data *execute_data)
+{
+ old_zend_execute_ex(execute_data);
+}
+
PHP_MINIT_FUNCTION(zend_test)
{
zend_class_entry class_entry;
@@ -431,6 +439,11 @@ PHP_MINIT_FUNCTION(zend_test)
(void)ini_entries;
}
+ if (ZT_G(replace_zend_execute_ex)) {
+ old_zend_execute_ex = zend_execute_ex;
+ zend_execute_ex = custom_zend_execute_ex;
+ }
+
return SUCCESS;
}