diff options
Diffstat (limited to 'Zend/zend_vm_execute.h')
-rw-r--r-- | Zend/zend_vm_execute.h | 128 |
1 files changed, 80 insertions, 48 deletions
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index f323381f48..e745dd0850 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -9325,9 +9325,11 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMP_CONST_HANDLER(ZEND_OPCO } } while (nested); - ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); - EX_T(opline->result.var).var.fcall_returned_reference = 0; - EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + if (RETURN_VALUE_USED(opline)) { + ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); + EX_T(opline->result.var).var.fcall_returned_reference = 0; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + } ZEND_VM_NEXT_OPCODE(); } @@ -10212,9 +10214,11 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE } } while (nested); - ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); - EX_T(opline->result.var).var.fcall_returned_reference = 0; - EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + if (RETURN_VALUE_USED(opline)) { + ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); + EX_T(opline->result.var).var.fcall_returned_reference = 0; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + } ZEND_VM_NEXT_OPCODE(); } @@ -11100,9 +11104,11 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE } } while (nested); - ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); - EX_T(opline->result.var).var.fcall_returned_reference = 0; - EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + if (RETURN_VALUE_USED(opline)) { + ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); + EX_T(opline->result.var).var.fcall_returned_reference = 0; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + } ZEND_VM_NEXT_OPCODE(); } @@ -12568,9 +12574,11 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_ } } while (nested); - ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); - EX_T(opline->result.var).var.fcall_returned_reference = 0; - EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + if (RETURN_VALUE_USED(opline)) { + ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); + EX_T(opline->result.var).var.fcall_returned_reference = 0; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + } ZEND_VM_NEXT_OPCODE(); } @@ -15828,9 +15836,11 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZEND_OPCO } } while (nested); - ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); - EX_T(opline->result.var).var.fcall_returned_reference = 0; - EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + if (RETURN_VALUE_USED(opline)) { + ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); + EX_T(opline->result.var).var.fcall_returned_reference = 0; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + } ZEND_VM_NEXT_OPCODE(); } @@ -18196,9 +18206,11 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE } } while (nested); - ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); - EX_T(opline->result.var).var.fcall_returned_reference = 0; - EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + if (RETURN_VALUE_USED(opline)) { + ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); + EX_T(opline->result.var).var.fcall_returned_reference = 0; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + } ZEND_VM_NEXT_OPCODE(); } @@ -20525,9 +20537,11 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE } } while (nested); - ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); - EX_T(opline->result.var).var.fcall_returned_reference = 0; - EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + if (RETURN_VALUE_USED(opline)) { + ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); + EX_T(opline->result.var).var.fcall_returned_reference = 0; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + } ZEND_VM_NEXT_OPCODE(); } @@ -24004,9 +24018,11 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_ } } while (nested); - ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); - EX_T(opline->result.var).var.fcall_returned_reference = 0; - EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + if (RETURN_VALUE_USED(opline)) { + ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); + EX_T(opline->result.var).var.fcall_returned_reference = 0; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + } ZEND_VM_NEXT_OPCODE(); } @@ -25668,9 +25684,11 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CONST_HANDLER(ZEND_O } } while (nested); - ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); - EX_T(opline->result.var).var.fcall_returned_reference = 0; - EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + if (RETURN_VALUE_USED(opline)) { + ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); + EX_T(opline->result.var).var.fcall_returned_reference = 0; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + } ZEND_VM_NEXT_OPCODE(); } @@ -27098,9 +27116,11 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_TMP_HANDLER(ZEND_OPC } } while (nested); - ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); - EX_T(opline->result.var).var.fcall_returned_reference = 0; - EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + if (RETURN_VALUE_USED(opline)) { + ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); + EX_T(opline->result.var).var.fcall_returned_reference = 0; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + } ZEND_VM_NEXT_OPCODE(); } @@ -28434,9 +28454,11 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_VAR_HANDLER(ZEND_OPC } } while (nested); - ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); - EX_T(opline->result.var).var.fcall_returned_reference = 0; - EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + if (RETURN_VALUE_USED(opline)) { + ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); + EX_T(opline->result.var).var.fcall_returned_reference = 0; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + } ZEND_VM_NEXT_OPCODE(); } @@ -30198,9 +30220,11 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_CV_HANDLER(ZEND_OPCO } } while (nested); - ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); - EX_T(opline->result.var).var.fcall_returned_reference = 0; - EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + if (RETURN_VALUE_USED(opline)) { + ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); + EX_T(opline->result.var).var.fcall_returned_reference = 0; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + } ZEND_VM_NEXT_OPCODE(); } @@ -33459,9 +33483,11 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CONST_HANDLER(ZEND_OPCOD } } while (nested); - ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); - EX_T(opline->result.var).var.fcall_returned_reference = 0; - EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + if (RETURN_VALUE_USED(opline)) { + ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); + EX_T(opline->result.var).var.fcall_returned_reference = 0; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + } ZEND_VM_NEXT_OPCODE(); } @@ -35593,9 +35619,11 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_ } } while (nested); - ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); - EX_T(opline->result.var).var.fcall_returned_reference = 0; - EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + if (RETURN_VALUE_USED(opline)) { + ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); + EX_T(opline->result.var).var.fcall_returned_reference = 0; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + } ZEND_VM_NEXT_OPCODE(); } @@ -37782,9 +37810,11 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_ } } while (nested); - ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); - EX_T(opline->result.var).var.fcall_returned_reference = 0; - EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + if (RETURN_VALUE_USED(opline)) { + ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); + EX_T(opline->result.var).var.fcall_returned_reference = 0; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + } ZEND_VM_NEXT_OPCODE(); } @@ -40972,9 +41002,11 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_CV_HANDLER(ZEND_OPCODE_H } } while (nested); - ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); - EX_T(opline->result.var).var.fcall_returned_reference = 0; - EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + if (RETURN_VALUE_USED(opline)) { + ALLOC_INIT_ZVAL(EX_T(opline->result.var).var.ptr); + EX_T(opline->result.var).var.fcall_returned_reference = 0; + EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr; + } ZEND_VM_NEXT_OPCODE(); } |