From: Nikita Popov Date: Tue, 10 May 2016 10:17:54 +0000 (+0200) Subject: Merge branch 'PHP-7.0' X-Git-Tag: php-7.1.0alpha1~169 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=20560da118f888ff4fdcd0ec88aea8a3f911eff4;p=php Merge branch 'PHP-7.0' Conflicts: ext/reflection/php_reflection.c --- 20560da118f888ff4fdcd0ec88aea8a3f911eff4 diff --cc ext/reflection/php_reflection.c index 2a7ff61957,4c3f6240f4..38cfec6aa9 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@@ -5649,9 -5383,12 +5649,16 @@@ ZEND_METHOD(reflection_property, getVal } zend_unmangle_property_name_ex(ref->prop.name, &class_name, &prop_name, &prop_name_len); - member_p = zend_read_property(ref->ce, object, prop_name, prop_name_len, 1, &rv); - ZVAL_DEREF(member_p); - ZVAL_COPY(return_value, member_p); + member_p = zend_read_property(ref->ce, object, prop_name, prop_name_len, 0, &rv); + if (member_p != &rv) { ++ ZVAL_DEREF(member_p); + ZVAL_COPY(return_value, member_p); + } else { ++ if (Z_ISREF_P(member_p)) { ++ zend_unwrap_reference(member_p); ++ } + ZVAL_COPY_VALUE(return_value, member_p); + } } } /* }}} */