zend_assign_to_variable_reference(variable_ptr, value_ptr TSRMLS_CC);
if (OP2_TYPE == IS_VAR && opline->extended_value == ZEND_RETURNS_NEW) {
-//??? Z_DELREF_P(variable_ptr);
+ if (!OP2_FREE) {
+ Z_DELREF_P(variable_ptr);
+ }
}
if (RETURN_VALUE_USED(opline)) {
zend_assign_to_variable_reference(variable_ptr, value_ptr TSRMLS_CC);
if (IS_VAR == IS_VAR && opline->extended_value == ZEND_RETURNS_NEW) {
-//??? Z_DELREF_P(variable_ptr);
+ if (!(free_op2.var != NULL)) {
+ Z_DELREF_P(variable_ptr);
+ }
}
if (RETURN_VALUE_USED(opline)) {
zend_assign_to_variable_reference(variable_ptr, value_ptr TSRMLS_CC);
if (IS_CV == IS_VAR && opline->extended_value == ZEND_RETURNS_NEW) {
-//??? Z_DELREF_P(variable_ptr);
+ if (!0) {
+ Z_DELREF_P(variable_ptr);
+ }
}
if (RETURN_VALUE_USED(opline)) {
zend_assign_to_variable_reference(variable_ptr, value_ptr TSRMLS_CC);
if (IS_VAR == IS_VAR && opline->extended_value == ZEND_RETURNS_NEW) {
-//??? Z_DELREF_P(variable_ptr);
+ if (!(free_op2.var != NULL)) {
+ Z_DELREF_P(variable_ptr);
+ }
}
if (RETURN_VALUE_USED(opline)) {
zend_assign_to_variable_reference(variable_ptr, value_ptr TSRMLS_CC);
if (IS_CV == IS_VAR && opline->extended_value == ZEND_RETURNS_NEW) {
-//??? Z_DELREF_P(variable_ptr);
+ if (!0) {
+ Z_DELREF_P(variable_ptr);
+ }
}
if (RETURN_VALUE_USED(opline)) {