diff options
| author | Dmitry Stogov <dmitry@php.net> | 2007-02-15 10:38:28 +0000 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@php.net> | 2007-02-15 10:38:28 +0000 |
| commit | 0291ad5fa68a3c87faba5c181d36ec2d5f6c2345 (patch) | |
| tree | bc8700b873fcaf642c99606b9183c07076e94ed6 /Zend/zend_compile.c | |
| parent | b997390e1d2c49c88d75c3a28572ff42fadd8d57 (diff) | |
| download | php-git-0291ad5fa68a3c87faba5c181d36ec2d5f6c2345.tar.gz | |
Fixed bug #40236 (php -a function allocation eats memory)
Diffstat (limited to 'Zend/zend_compile.c')
| -rw-r--r-- | Zend/zend_compile.c | 6 |
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; |
