summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2001-08-31 13:11:52 +0000
committerZeev Suraski <zeev@php.net>2001-08-31 13:11:52 +0000
commit819ea51d00142ce3a1ebf73fe2761fdec6c1a7e6 (patch)
tree7adeb5510c4f9a15a4b9125fd07eb950677e8960
parent392e1edee87917154c1a34acd747def6f096144b (diff)
downloadphp-git-819ea51d00142ce3a1ebf73fe2761fdec6c1a7e6.tar.gz
MFZE1
-rw-r--r--Zend/zend.c8
-rw-r--r--Zend/zend_compile.h2
2 files changed, 7 insertions, 3 deletions
diff --git a/Zend/zend.c b/Zend/zend.c
index b864b9dadc..6eb3e931b6 100644
--- a/Zend/zend.c
+++ b/Zend/zend.c
@@ -788,7 +788,7 @@ ZEND_API void zend_output_debug_string(zend_bool trigger_break, char *format, ..
}
-ZEND_API int zend_execute_scripts(int type TSRMLS_DC, int file_count, ...)
+ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval, int file_count, ...)
{
va_list files;
int i;
@@ -806,7 +806,11 @@ ZEND_API int zend_execute_scripts(int type TSRMLS_DC, int file_count, ...)
if (EG(active_op_array)) {
zend_execute(EG(active_op_array) TSRMLS_CC);
zval_ptr_dtor(EG(return_value_ptr_ptr));
- EG(return_value_ptr_ptr) = &EG(global_return_value_ptr);
+ if (retval) {
+ EG(return_value_ptr_ptr) = retval;
+ } else {
+ EG(return_value_ptr_ptr) = &EG(global_return_value_ptr);
+ }
EG(global_return_value_ptr) = NULL;
destroy_op_array(EG(active_op_array));
efree(EG(active_op_array));
diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h
index ef3b2a214b..64a7d646bb 100644
--- a/Zend/zend_compile.h
+++ b/Zend/zend_compile.h
@@ -374,7 +374,7 @@ ZEND_API void function_add_ref(zend_function *function);
ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSRMLS_DC);
ZEND_API zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC);
ZEND_API zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC);
-ZEND_API int zend_execute_scripts(int type TSRMLS_DC, int file_count, ...);
+ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval, int file_count, ...);
ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC);
ZEND_API void init_op_array(zend_op_array *op_array, int type, int initial_ops_size TSRMLS_DC);
ZEND_API void destroy_op_array(zend_op_array *op_array);