summaryrefslogtreecommitdiff
path: root/Zend/zend_compile.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_compile.c')
-rw-r--r--Zend/zend_compile.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 713c18305a..d0b0b70b67 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -1067,6 +1067,7 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n
int function_begin_line = function_token->u.opline_num;
zend_uint fn_flags;
char *lcname;
+ zend_bool orig_interactive;
if (is_method) {
if (CG(active_class_entry)->ce_flags & ZEND_ACC_INTERFACE) {
@@ -1086,11 +1087,14 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n
function_token->u.op_array = CG(active_op_array);
lcname = zend_str_tolower_dup(name, name_len);
+ orig_interactive = CG(interactive);
+ CG(interactive) = 0;
init_op_array(&op_array, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);
+ CG(interactive) = orig_interactive;
op_array.function_name = name;
op_array.return_reference = return_reference;
- op_array.fn_flags = fn_flags;
+ op_array.fn_flags |= fn_flags;
op_array.pass_rest_by_reference = 0;
op_array.scope = is_method?CG(active_class_entry):NULL;