Fixed refcounting
authorDmitry Stogov <dmitry@zend.com>
Thu, 27 Feb 2014 14:10:42 +0000 (18:10 +0400)
committerDmitry Stogov <dmitry@zend.com>
Thu, 27 Feb 2014 14:10:42 +0000 (18:10 +0400)
Zend/zend_object_handlers.c

index afa7a427c1d86161dddb5fdceab185673983c4f6..b27ab71a83fe89a2dcde320d4162998150db4012 100644 (file)
@@ -424,7 +424,6 @@ zval *zend_std_read_property(zval *object, zval *member, int type, const zend_li
        zend_object *zobj;
        zval tmp_member;
        zval *retval;
-//???  zval rv;
        zend_property_info *property_info;
        int silent;
 
@@ -518,9 +517,9 @@ zval *zend_std_read_property(zval *object, zval *member, int type, const zend_li
        }
 exit:
        if (UNEXPECTED(Z_TYPE(tmp_member) != IS_UNDEF)) {
-               Z_ADDREF_P(retval);
+               if (Z_REFCOUNTED_P(retval)) Z_ADDREF_P(retval);
                zval_ptr_dtor(&tmp_member);
-               Z_DELREF_P(retval);
+               if (Z_REFCOUNTED_P(retval)) Z_DELREF_P(retval);
        }
        return retval;
 }