@@ -4477,14 +4477,16 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_CONST_HANDLER(Z
4477
4477
4478
4478
SAVE_OPLINE();
4479
4479
4480
+ arg = RT_CONSTANT(opline, opline->op1);
4481
+ param = ZEND_CALL_VAR(EX(call), opline->result.var);
4480
4482
if (UNEXPECTED(ARG_MUST_BE_SENT_BY_REF(EX(call)->func, opline->op2.num))) {
4481
4483
zend_param_must_be_ref(EX(call)->func, opline->op2.num);
4484
+ Z_TRY_ADDREF_P(arg);
4485
+ ZVAL_NEW_REF(param, arg);
4486
+ } else {
4487
+ ZVAL_COPY(param, arg);
4482
4488
}
4483
4489
4484
- arg = RT_CONSTANT(opline, opline->op1);
4485
- param = ZEND_CALL_VAR(EX(call), opline->result.var);
4486
- ZVAL_COPY(param, arg);
4487
-
4488
4490
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
4489
4491
}
4490
4492
@@ -18738,13 +18740,16 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_TMP_HANDLER(ZEN
18738
18740
18739
18741
SAVE_OPLINE();
18740
18742
18743
+ arg = _get_zval_ptr_tmp(opline->op1.var EXECUTE_DATA_CC);
18744
+ param = ZEND_CALL_VAR(EX(call), opline->result.var);
18741
18745
if (UNEXPECTED(ARG_MUST_BE_SENT_BY_REF(EX(call)->func, opline->op2.num))) {
18742
18746
zend_param_must_be_ref(EX(call)->func, opline->op2.num);
18747
+ Z_TRY_ADDREF_P(arg);
18748
+ ZVAL_NEW_REF(param, arg);
18749
+ } else {
18750
+ ZVAL_COPY(param, arg);
18743
18751
}
18744
18752
18745
- arg = _get_zval_ptr_tmp(opline->op1.var EXECUTE_DATA_CC);
18746
- param = ZEND_CALL_VAR(EX(call), opline->result.var);
18747
- ZVAL_COPY(param, arg);
18748
18753
zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
18749
18754
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
18750
18755
}
@@ -21311,13 +21316,16 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_VAR_HANDLER(ZEN
21311
21316
21312
21317
SAVE_OPLINE();
21313
21318
21319
+ arg = _get_zval_ptr_var_deref(opline->op1.var EXECUTE_DATA_CC);
21320
+ param = ZEND_CALL_VAR(EX(call), opline->result.var);
21314
21321
if (UNEXPECTED(ARG_MUST_BE_SENT_BY_REF(EX(call)->func, opline->op2.num))) {
21315
21322
zend_param_must_be_ref(EX(call)->func, opline->op2.num);
21323
+ Z_TRY_ADDREF_P(arg);
21324
+ ZVAL_NEW_REF(param, arg);
21325
+ } else {
21326
+ ZVAL_COPY(param, arg);
21316
21327
}
21317
21328
21318
- arg = _get_zval_ptr_var_deref(opline->op1.var EXECUTE_DATA_CC);
21319
- param = ZEND_CALL_VAR(EX(call), opline->result.var);
21320
- ZVAL_COPY(param, arg);
21321
21329
zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
21322
21330
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
21323
21331
}
@@ -37618,14 +37626,16 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_SEND_USER_SPEC_CV_HANDLER(ZEND
37618
37626
37619
37627
SAVE_OPLINE();
37620
37628
37629
+ arg = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC);
37630
+ param = ZEND_CALL_VAR(EX(call), opline->result.var);
37621
37631
if (UNEXPECTED(ARG_MUST_BE_SENT_BY_REF(EX(call)->func, opline->op2.num))) {
37622
37632
zend_param_must_be_ref(EX(call)->func, opline->op2.num);
37633
+ Z_TRY_ADDREF_P(arg);
37634
+ ZVAL_NEW_REF(param, arg);
37635
+ } else {
37636
+ ZVAL_COPY(param, arg);
37623
37637
}
37624
37638
37625
- arg = _get_zval_ptr_cv_deref_BP_VAR_R(opline->op1.var EXECUTE_DATA_CC);
37626
- param = ZEND_CALL_VAR(EX(call), opline->result.var);
37627
- ZVAL_COPY(param, arg);
37628
-
37629
37639
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
37630
37640
}
37631
37641
0 commit comments