summaryrefslogtreecommitdiff
path: root/Zend/zend.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend.c')
-rw-r--r--Zend/zend.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/Zend/zend.c b/Zend/zend.c
index 6c6815bd3f..188de6ef6f 100644
--- a/Zend/zend.c
+++ b/Zend/zend.c
@@ -812,6 +812,12 @@ ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval, int file_co
zend_file_handle *file_handle;
zend_op_array *orig_op_array = EG(active_op_array);
zval *local_retval=NULL;
+ zend_execute_data execute_data;
+
+ EX(prev_execute_data) = NULL;
+ EG(current_execute_data) = &execute_data;
+ EX(object) = NULL;
+ EX(opline) = NULL;
va_start(files, file_count);
for (i=0; i<file_count; i++) {
@@ -822,6 +828,7 @@ ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval, int file_co
EG(active_op_array) = zend_compile_file(file_handle, ZEND_INCLUDE TSRMLS_CC);
zend_destroy_file_handle(file_handle TSRMLS_CC);
if (EG(active_op_array)) {
+ EX(function_state).function = (zend_function *) EG(active_op_array);
EG(return_value_ptr_ptr) = retval ? retval : &local_retval;
zend_execute(EG(active_op_array) TSRMLS_CC);
if (EG(exception)) {