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.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 6eec6615af..c196e39887 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -2406,6 +2406,7 @@ uint32_t zend_compile_args(zend_ast *ast, zend_function *fbc) /* {{{ */
zend_compile_expr(&arg_node, arg->child[0]);
opline = zend_emit_op(NULL, ZEND_SEND_UNPACK, &arg_node, NULL);
opline->op2.num = arg_count;
+ opline->result.var = (uint32_t)(zend_intptr_t)ZEND_CALL_ARG(NULL, arg_count);
continue;
}
@@ -2468,6 +2469,7 @@ uint32_t zend_compile_args(zend_ast *ast, zend_function *fbc) /* {{{ */
SET_NODE(opline->op1, &arg_node);
SET_UNUSED(opline->op2);
opline->op2.opline_num = arg_num;
+ opline->result.var = (uint32_t)(zend_intptr_t)ZEND_CALL_ARG(NULL, arg_num);
if (opcode == ZEND_SEND_VAR_NO_REF) {
if (fbc) {
@@ -2695,7 +2697,7 @@ int zend_compile_func_cufa(znode *result, zend_ast_list *args, zend_string *lcna
return FAILURE;
}
- zend_compile_init_user_func(args->child[0], 1, lcname);
+ zend_compile_init_user_func(args->child[0], 0, lcname);
zend_compile_expr(&arg_node, args->child[1]);
zend_emit_op(NULL, ZEND_SEND_ARRAY, &arg_node, NULL);
zend_emit_op(result, ZEND_DO_FCALL, NULL, NULL);
@@ -2736,7 +2738,8 @@ int zend_compile_func_cuf(znode *result, zend_ast_list *args, zend_string *lcnam
opline = zend_emit_op(NULL, ZEND_SEND_VAL, &arg_node, NULL);
}
- opline->op2.opline_num = i;
+ opline->op2.num = i;
+ opline->result.var = (uint32_t)(zend_intptr_t)ZEND_CALL_ARG(NULL, i);
}
zend_emit_op(result, ZEND_DO_FCALL, NULL, NULL);