diff options
author | Dmitry Stogov <dmitry@php.net> | 2005-02-24 08:52:11 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2005-02-24 08:52:11 +0000 |
commit | f3f8792b9b1efccb8d467fcc8755c84335b47f9a (patch) | |
tree | 44e0349c3554dd0e0b18abefc5143276d60c01dc /Zend/zend_vm_execute.h | |
parent | de9206a9e9ff1ca95773d9812a986be778373467 (diff) | |
download | php-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.h | 24 |
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(); |