From e97a6585a3e15dc1f613c2ec973545488f34182d Mon Sep 17 00:00:00 2001 From: Reeze Xia Date: Sat, 3 Nov 2012 23:21:09 +0800 Subject: [PATCH] Fixed bug #63428 (The behavior of execute() changed) Test Zend/tests/bug35437.phpt failed when zend_execute wasn't function execute, such as dtrace or xdebug enabled. --- Zend/zend_vm_execute.h | 8 +++++++- Zend/zend_vm_execute.skl | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 8c4b594d0000a..ef942142cd963 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -459,7 +459,13 @@ ZEND_API void execute_ex(zend_execute_data *execute_data TSRMLS_DC) ZEND_API void execute(zend_op_array *op_array TSRMLS_DC) { - zend_execute_data *execute_data = zend_create_execute_data_from_op_array(op_array, 0 TSRMLS_CC); + zend_execute_data *execute_data; + + if (EG(exception)) { + return; + } + + execute_data = zend_create_execute_data_from_op_array(op_array, 0 TSRMLS_CC); execute_ex(execute_data TSRMLS_CC); } diff --git a/Zend/zend_vm_execute.skl b/Zend/zend_vm_execute.skl index 58e5631c953c6..226829f8e1724 100644 --- a/Zend/zend_vm_execute.skl +++ b/Zend/zend_vm_execute.skl @@ -110,7 +110,13 @@ ZEND_API void {%EXECUTOR_NAME%}_ex(zend_execute_data *execute_data TSRMLS_DC) ZEND_API void {%EXECUTOR_NAME%}(zend_op_array *op_array TSRMLS_DC) { - zend_execute_data *execute_data = zend_create_execute_data_from_op_array(op_array, 0 TSRMLS_CC); + zend_execute_data *execute_data; + + if (EG(exception)) { + return; + } + + execute_data = zend_create_execute_data_from_op_array(op_array, 0 TSRMLS_CC); {%EXECUTOR_NAME%}_ex(execute_data TSRMLS_CC); }