retval_ptr = GET_OP1_ZVAL_PTR(BP_VAR_R);
+ if (OP1_TYPE == IS_CONST) {
+ ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr);
+ retval_ptr = EX_VAR(opline->result.var);
+ }
+
if (UNEXPECTED(!ret_info->class_name
&& ret_info->type_hint != IS_CALLABLE
&& !ZEND_SAME_FAKE_TYPE(ret_info->type_hint, Z_TYPE_P(retval_ptr)))) {
}
}
zend_verify_return_type(EX(func), retval_ptr);
- if (OP1_TYPE == IS_CONST) {
- ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr);
- }
#endif
}
CHECK_EXCEPTION();
retval_ptr = EX_CONSTANT(opline->op1);
+ if (IS_CONST == IS_CONST) {
+ ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr);
+ retval_ptr = EX_VAR(opline->result.var);
+ }
+
if (UNEXPECTED(!ret_info->class_name
&& ret_info->type_hint != IS_CALLABLE
&& !ZEND_SAME_FAKE_TYPE(ret_info->type_hint, Z_TYPE_P(retval_ptr)))) {
}
}
zend_verify_return_type(EX(func), retval_ptr);
- if (IS_CONST == IS_CONST) {
- ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr);
- }
#endif
}
CHECK_EXCEPTION();
retval_ptr = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1);
+ if (IS_TMP_VAR == IS_CONST) {
+ ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr);
+ retval_ptr = EX_VAR(opline->result.var);
+ }
+
if (UNEXPECTED(!ret_info->class_name
&& ret_info->type_hint != IS_CALLABLE
&& !ZEND_SAME_FAKE_TYPE(ret_info->type_hint, Z_TYPE_P(retval_ptr)))) {
}
}
zend_verify_return_type(EX(func), retval_ptr);
- if (IS_TMP_VAR == IS_CONST) {
- ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr);
- }
#endif
}
CHECK_EXCEPTION();
retval_ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1);
+ if (IS_VAR == IS_CONST) {
+ ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr);
+ retval_ptr = EX_VAR(opline->result.var);
+ }
+
if (UNEXPECTED(!ret_info->class_name
&& ret_info->type_hint != IS_CALLABLE
&& !ZEND_SAME_FAKE_TYPE(ret_info->type_hint, Z_TYPE_P(retval_ptr)))) {
}
}
zend_verify_return_type(EX(func), retval_ptr);
- if (IS_VAR == IS_CONST) {
- ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr);
- }
#endif
}
CHECK_EXCEPTION();
retval_ptr = NULL;
+ if (IS_UNUSED == IS_CONST) {
+ ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr);
+ retval_ptr = EX_VAR(opline->result.var);
+ }
+
if (UNEXPECTED(!ret_info->class_name
&& ret_info->type_hint != IS_CALLABLE
&& !ZEND_SAME_FAKE_TYPE(ret_info->type_hint, Z_TYPE_P(retval_ptr)))) {
}
}
zend_verify_return_type(EX(func), retval_ptr);
- if (IS_UNUSED == IS_CONST) {
- ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr);
- }
#endif
}
CHECK_EXCEPTION();
retval_ptr = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var);
+ if (IS_CV == IS_CONST) {
+ ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr);
+ retval_ptr = EX_VAR(opline->result.var);
+ }
+
if (UNEXPECTED(!ret_info->class_name
&& ret_info->type_hint != IS_CALLABLE
&& !ZEND_SAME_FAKE_TYPE(ret_info->type_hint, Z_TYPE_P(retval_ptr)))) {
}
}
zend_verify_return_type(EX(func), retval_ptr);
- if (IS_CV == IS_CONST) {
- ZVAL_COPY(EX_VAR(opline->result.var), retval_ptr);
- }
#endif
}
CHECK_EXCEPTION();