]> granicus.if.org Git - php/commitdiff
Preserve EG(return_value_ptr_ptr) when calling zend_execute_scripts()
authorSara Golemon <pollita@php.net>
Thu, 5 Oct 2006 23:24:55 +0000 (23:24 +0000)
committerSara Golemon <pollita@php.net>
Thu, 5 Oct 2006 23:24:55 +0000 (23:24 +0000)
Zend/zend.c

index ccb129407ddf9fbf502c4c6d6fade9f2d1934c23..b260500e1428dbf937d2663f07877b981d321091 100644 (file)
@@ -1596,6 +1596,7 @@ ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval, int file_co
        int i;
        zend_file_handle *file_handle;
        zend_op_array *orig_op_array = EG(active_op_array);
+       zval **orig_retval_ptr_ptr = EG(return_value_ptr_ptr);
        zval *local_retval=NULL;
 
        va_start(files, file_count);
@@ -1659,11 +1660,13 @@ ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval, int file_co
                } else if (type==ZEND_REQUIRE) {
                        va_end(files);
                        EG(active_op_array) = orig_op_array;
+                       EG(return_value_ptr_ptr) = orig_retval_ptr_ptr;
                        return FAILURE;
                }
        }
        va_end(files);
        EG(active_op_array) = orig_op_array;
+       EG(return_value_ptr_ptr) = orig_retval_ptr_ptr;
 
        return SUCCESS;
 }