summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Le Blanc <lbarnaud@php.net>2009-05-30 16:31:12 +0000
committerArnaud Le Blanc <lbarnaud@php.net>2009-05-30 16:31:12 +0000
commitbed00e15d136a94f04f99edda67703cd667f7d6f (patch)
tree9e559d22b537503edfdfa0c8dc276e825f7cc303
parent16398c1990a2ee7024471e30072d24970f49a5a4 (diff)
downloadphp-git-bed00e15d136a94f04f99edda67703cd667f7d6f.tar.gz
MFH: Fix aliasing issue (fixes #48409 , #48428 , #48228)
-rw-r--r--Zend/zend_vm_def.h7
-rw-r--r--Zend/zend_vm_execute.h7
2 files changed, 10 insertions, 4 deletions
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index b4ee7be7cb..182e649854 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -2288,7 +2288,9 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY)
EG(called_scope) = EX(called_scope);
}
- zend_ptr_stack_3_pop(&EG(arg_types_stack), (void*)&EX(called_scope), (void**)&EX(current_object), (void**)&EX(fbc));
+ EX(called_scope) = zend_ptr_stack_pop(&EG(arg_types_stack));
+ EX(current_object) = zend_ptr_stack_pop(&EG(arg_types_stack));
+ EX(fbc) = zend_ptr_stack_pop(&EG(arg_types_stack));
EX(function_state).arguments = zend_vm_stack_push_args(opline->extended_value TSRMLS_CC);
if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION) {
@@ -4296,7 +4298,8 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
zval_ptr_dtor(&EX(object));
}
EX(called_scope) = DECODE_CTOR(EX(called_scope));
- zend_ptr_stack_2_pop(&EG(arg_types_stack), (void**)&EX(object), (void**)&EX(fbc));
+ EX(object) = zend_ptr_stack_pop(&EG(arg_types_stack));
+ EX(fbc) = zend_ptr_stack_pop(&EG(arg_types_stack));
}
for (i=0; i<EX(op_array)->last_brk_cont; i++) {
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index bf3419ffc1..b69e681c08 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -290,7 +290,9 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR
EG(called_scope) = EX(called_scope);
}
- zend_ptr_stack_3_pop(&EG(arg_types_stack), (void*)&EX(called_scope), (void**)&EX(current_object), (void**)&EX(fbc));
+ EX(called_scope) = zend_ptr_stack_pop(&EG(arg_types_stack));
+ EX(current_object) = zend_ptr_stack_pop(&EG(arg_types_stack));
+ EX(fbc) = zend_ptr_stack_pop(&EG(arg_types_stack));
EX(function_state).arguments = zend_vm_stack_push_args(opline->extended_value TSRMLS_CC);
if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION) {
@@ -636,7 +638,8 @@ static int ZEND_FASTCALL ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER
zval_ptr_dtor(&EX(object));
}
EX(called_scope) = DECODE_CTOR(EX(called_scope));
- zend_ptr_stack_2_pop(&EG(arg_types_stack), (void**)&EX(object), (void**)&EX(fbc));
+ EX(object) = zend_ptr_stack_pop(&EG(arg_types_stack));
+ EX(fbc) = zend_ptr_stack_pop(&EG(arg_types_stack));
}
for (i=0; i<EX(op_array)->last_brk_cont; i++) {