zend_error(E_ERROR, "Cannot return string offsets by reference");
}
- if (!(*retval_ptr_ptr)->is_ref
- /*&& EX_T(EX(opline)->op1.u.var).var.ptr_ptr == &EX_T(EX(opline)->op1.u.var).var.ptr*/) {
- if (EX(opline)->extended_value == ZEND_RETURNS_FUNCTION
- && !EX_T(EX(opline)->op1.u.var).var.fcall_returned_reference) {
+ if (!(*retval_ptr_ptr)->is_ref) {
+ if (EX_T(EX(opline)->op1.u.var).var.ptr_ptr == &EX_T(EX(opline)->op1.u.var).var.ptr
+ || (EX(opline)->extended_value == ZEND_RETURNS_FUNCTION && !EX_T(EX(opline)->op1.u.var).var.fcall_returned_reference)) {
zend_error(E_STRICT, "Only variable references should be returned by reference");
PZVAL_LOCK(*retval_ptr_ptr); /* undo the effect of get_zval_ptr_ptr() */
goto return_by_value;