summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_execute.c')
-rw-r--r--Zend/zend_execute.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index e0bc6c8936..362b3a8c85 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1304,10 +1304,12 @@ binary_assign_op_addr: {
HashTable *active_function_table;
zval tmp;
+ zend_ptr_stack_n_push(&EG(arg_types_stack), 3, function_being_called, object.ptr, object.ptr_ptr);
+ /*
zend_ptr_stack_push(&EG(arg_types_stack), function_being_called);
zend_ptr_stack_push(&EG(arg_types_stack), object.ptr);
zend_ptr_stack_push(&EG(arg_types_stack), object.ptr_ptr);
-
+ */
if (opline->extended_value & ZEND_CTOR_CALL) {
/* constructor call */
@@ -1465,9 +1467,12 @@ do_fcall_common:
efree(function_being_called);
}
if (opline->opcode == ZEND_DO_FCALL_BY_NAME) {
+ zend_ptr_stack_n_pop(&EG(arg_types_stack), 3, &object.ptr_ptr, &object.ptr, &function_being_called);
+ /*
object.ptr_ptr = zend_ptr_stack_pop(&EG(arg_types_stack));
object.ptr = zend_ptr_stack_pop(&EG(arg_types_stack));
function_being_called = zend_ptr_stack_pop(&EG(arg_types_stack));
+ */
}
function_state.function = (zend_function *) op_array;
EG(function_state_ptr) = &function_state;