@@ -4621,14 +4621,16 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_CONST_HANDLER(Z
4621
4621
4622
4622
SAVE_OPLINE();
4623
4623
4624
+ arg = RT_CONSTANT(opline, opline->op1);
4625
+ param = ZEND_CALL_VAR(EX(call), opline->result.var);
4624
4626
if (UNEXPECTED(ARG_MUST_BE_SENT_BY_REF(EX(call)->func, opline->op2.num))) {
4625
4627
zend_param_must_be_ref(EX(call)->func, opline->op2.num);
4628
+ Z_TRY_ADDREF_P(arg);
4629
+ ZVAL_NEW_REF(param, arg);
4630
+ } else {
4631
+ ZVAL_COPY(param, arg);
4626
4632
}
4627
4633
4628
- arg = RT_CONSTANT(opline, opline->op1);
4629
- param = ZEND_CALL_VAR(EX(call), opline->result.var);
4630
- ZVAL_COPY(param, arg);
4631
-
4632
4634
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
4633
4635
}
4634
4636
@@ -18940,13 +18942,16 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_TMP_HANDLER(ZEN
18940
18942
18941
18943
SAVE_OPLINE();
18942
18944
18945
+ arg = _get_zval_ptr_tmp(opline->op1.var EXECUTE_DATA_CC);
18946
+ param = ZEND_CALL_VAR(EX(call), opline->result.var);
18943
18947
if (UNEXPECTED(ARG_MUST_BE_SENT_BY_REF(EX(call)->func, opline->op2.num))) {
18944
18948
zend_param_must_be_ref(EX(call)->func, opline->op2.num);
18949
+ Z_TRY_ADDREF_P(arg);
18950
+ ZVAL_NEW_REF(param, arg);
18951
+ } else {
18952
+ ZVAL_COPY(param, arg);
18945
18953
}
18946
18954
18947
- arg = _get_zval_ptr_tmp(opline->op1.var EXECUTE_DATA_CC);
18948
- param = ZEND_CALL_VAR(EX(call), opline->result.var);
18949
- ZVAL_COPY(param, arg);
18950
18955
zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
18951
18956
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
18952
18957
}
@@ -21554,13 +21559,16 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_VAR_HANDLER(ZEN
21554
21559
21555
21560
SAVE_OPLINE();
21556
21561
21562
+ arg = _get_zval_ptr_var_deref(opline->op1.var EXECUTE_DATA_CC);
21563
+ param = ZEND_CALL_VAR(EX(call), opline->result.var);
21557
21564
if (UNEXPECTED(ARG_MUST_BE_SENT_BY_REF(EX(call)->func, opline->op2.num))) {
21558
21565
zend_param_must_be_ref(EX(call)->func, opline->op2.num);
21566
+ Z_TRY_ADDREF_P(arg);
21567
+ ZVAL_NEW_REF(param, arg);
21568
+ } else {
21569
+ ZVAL_COPY(param, arg);
21559
21570
}
21560
21571
21561
- arg = _get_zval_ptr_var_deref(opline->op1.var EXECUTE_DATA_CC);
21562
- param = ZEND_CALL_VAR(EX(call), opline->result.var);
21563
- ZVAL_COPY(param, arg);
21564
21572
zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
21565
21573
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
21566
21574
}
@@ -37850,14 +37858,16 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_CV_HANDLER(ZEND
37850
37858
37851
37859
SAVE_OPLINE();
37852
37860
37861
+ arg = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC);
37862
+ param = ZEND_CALL_VAR(EX(call), opline->result.var);
37853
37863
if (UNEXPECTED(ARG_MUST_BE_SENT_BY_REF(EX(call)->func, opline->op2.num))) {
37854
37864
zend_param_must_be_ref(EX(call)->func, opline->op2.num);
37865
+ Z_TRY_ADDREF_P(arg);
37866
+ ZVAL_NEW_REF(param, arg);
37867
+ } else {
37868
+ ZVAL_COPY(param, arg);
37855
37869
}
37856
37870
37857
- arg = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC);
37858
- param = ZEND_CALL_VAR(EX(call), opline->result.var);
37859
- ZVAL_COPY(param, arg);
37860
-
37861
37871
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
37862
37872
}
37863
37873
0 commit comments