summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_execute.h
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2005-02-24 08:52:11 +0000
committerDmitry Stogov <dmitry@php.net>2005-02-24 08:52:11 +0000
commitf3f8792b9b1efccb8d467fcc8755c84335b47f9a (patch)
tree44e0349c3554dd0e0b18abefc5143276d60c01dc /Zend/zend_vm_execute.h
parentde9206a9e9ff1ca95773d9812a986be778373467 (diff)
downloadphp-git-f3f8792b9b1efccb8d467fcc8755c84335b47f9a.tar.gz
Fixed bug in ZEND_POST_INC/ZEND_POST_DEC handlers.
These opcodes assume IS_TMP_VAR as result.
Diffstat (limited to 'Zend/zend_vm_execute.h')
-rw-r--r--Zend/zend_vm_execute.h24
1 files changed, 6 insertions, 18 deletions
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index ab53117ca7..75aa2edaef 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -6601,9 +6601,7 @@ static int ZEND_POST_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
if (*var_ptr == EG(error_zval_ptr)) {
if (!RETURN_VALUE_UNUSED(&opline->result)) {
- EX_T(opline->result.u.var).var.ptr_ptr = &EG(uninitialized_zval_ptr);
- PZVAL_LOCK(*EX_T(opline->result.u.var).var.ptr_ptr);
- AI_USE_PTR(EX_T(opline->result.u.var).var);
+ EX_T(opline->result.u.var).tmp_var = *EG(uninitialized_zval_ptr);
}
if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
ZEND_VM_NEXT_OPCODE();
@@ -6641,9 +6639,7 @@ static int ZEND_POST_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
if (*var_ptr == EG(error_zval_ptr)) {
if (!RETURN_VALUE_UNUSED(&opline->result)) {
- EX_T(opline->result.u.var).var.ptr_ptr = &EG(uninitialized_zval_ptr);
- PZVAL_LOCK(*EX_T(opline->result.u.var).var.ptr_ptr);
- AI_USE_PTR(EX_T(opline->result.u.var).var);
+ EX_T(opline->result.u.var).tmp_var = *EG(uninitialized_zval_ptr);
}
if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
ZEND_VM_NEXT_OPCODE();
@@ -17386,9 +17382,7 @@ static int ZEND_POST_INC_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
if (*var_ptr == EG(error_zval_ptr)) {
if (!RETURN_VALUE_UNUSED(&opline->result)) {
- EX_T(opline->result.u.var).var.ptr_ptr = &EG(uninitialized_zval_ptr);
- PZVAL_LOCK(*EX_T(opline->result.u.var).var.ptr_ptr);
- AI_USE_PTR(EX_T(opline->result.u.var).var);
+ EX_T(opline->result.u.var).tmp_var = *EG(uninitialized_zval_ptr);
}
;
ZEND_VM_NEXT_OPCODE();
@@ -17426,9 +17420,7 @@ static int ZEND_POST_DEC_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
if (*var_ptr == EG(error_zval_ptr)) {
if (!RETURN_VALUE_UNUSED(&opline->result)) {
- EX_T(opline->result.u.var).var.ptr_ptr = &EG(uninitialized_zval_ptr);
- PZVAL_LOCK(*EX_T(opline->result.u.var).var.ptr_ptr);
- AI_USE_PTR(EX_T(opline->result.u.var).var);
+ EX_T(opline->result.u.var).tmp_var = *EG(uninitialized_zval_ptr);
}
;
ZEND_VM_NEXT_OPCODE();
@@ -28487,9 +28479,7 @@ static int ZEND_POST_INC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
if (*var_ptr == EG(error_zval_ptr)) {
if (!RETURN_VALUE_UNUSED(&opline->result)) {
- EX_T(opline->result.u.var).var.ptr_ptr = &EG(uninitialized_zval_ptr);
- PZVAL_LOCK(*EX_T(opline->result.u.var).var.ptr_ptr);
- AI_USE_PTR(EX_T(opline->result.u.var).var);
+ EX_T(opline->result.u.var).tmp_var = *EG(uninitialized_zval_ptr);
}
if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
ZEND_VM_NEXT_OPCODE();
@@ -28527,9 +28517,7 @@ static int ZEND_POST_DEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
if (*var_ptr == EG(error_zval_ptr)) {
if (!RETURN_VALUE_UNUSED(&opline->result)) {
- EX_T(opline->result.u.var).var.ptr_ptr = &EG(uninitialized_zval_ptr);
- PZVAL_LOCK(*EX_T(opline->result.u.var).var.ptr_ptr);
- AI_USE_PTR(EX_T(opline->result.u.var).var);
+ EX_T(opline->result.u.var).tmp_var = *EG(uninitialized_zval_ptr);
}
if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
ZEND_VM_NEXT_OPCODE();