From 228a537bbe51399a0fd53c09c13afbbe40ff0427 Mon Sep 17 00:00:00 2001 From: Andi Gutmans Date: Tue, 21 Sep 1999 20:00:01 +0000 Subject: [PATCH] - Fix problem where function parameter fetches were created too late. --- Zend/zend_compile.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 732ea0dc73..7863dd65ee 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -831,7 +831,7 @@ void do_end_function_call(znode *function_name, znode *result, znode *argument_l void do_pass_param(znode *param, int op, int offset CLS_DC) { - zend_op *opline = get_next_op(CG(active_op_array) CLS_CC); + zend_op *opline; unsigned char *arg_types; int original_op=op; zend_function **function_ptr_ptr, *function_ptr; @@ -840,10 +840,8 @@ void do_pass_param(znode *param, int op, int offset CLS_DC) function_ptr = *function_ptr_ptr; if (function_ptr) { arg_types = function_ptr->common.arg_types; - opline->extended_value = ZEND_DO_FCALL; } else { arg_types = NULL; - opline->extended_value = ZEND_DO_FCALL_BY_NAME; } if (op == ZEND_SEND_VAL) { @@ -885,6 +883,12 @@ void do_pass_param(znode *param, int op, int offset CLS_DC) } } + opline = get_next_op(CG(active_op_array) CLS_CC); + if (function_ptr) { + opline->extended_value = ZEND_DO_FCALL; + } else { + opline->extended_value = ZEND_DO_FCALL_BY_NAME; + } opline->opcode = op; opline->op1 = *param; opline->op2.u.opline_num = offset; -- 2.50.1