diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-04-28 15:09:41 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-04-28 15:09:41 +0200 |
commit | 75470bc312ef2e151696ea5c1ee026c089944623 (patch) | |
tree | c66425c87d02c6b6b20cbbf9ef846036d9acf631 | |
parent | 817e100a72eb7815052c0dcca668b2549c4d7619 (diff) | |
download | php-git-75470bc312ef2e151696ea5c1ee026c089944623.tar.gz |
Revert "Fix #79065: DOM classes do not expose properties to Reflection"
This reverts commit 6bc8f7e5a9949b2ba79376abd1ed13d0b4d0ae3c.
This causes an assertion failure in PHPUnit.
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | ext/dom/php_dom.c | 23 | ||||
-rw-r--r-- | ext/dom/tests/bug79065.phpt | 30 |
3 files changed, 0 insertions, 55 deletions
@@ -16,8 +16,6 @@ PHP NEWS - DOM: . Fixed bug #78221 (DOMNode::normalize() doesn't remove empty text nodes). (cmb) - . Fixed bug #79065 (DOM classes do not expose properties to Reflection). - (cmb) - EXIF: . Fixed bug #79336 (ext/exif/tests/bug79046.phpt fails on Big endian arch). diff --git a/ext/dom/php_dom.c b/ext/dom/php_dom.c index ad297ca778..6bc72e9f97 100644 --- a/ext/dom/php_dom.c +++ b/ext/dom/php_dom.c @@ -410,28 +410,6 @@ static int dom_property_exists(zval *object, zval *member, int check_empty, void } /* }}} */ -/* {{{ dom_get_properties */ -static HashTable *dom_get_properties(zval *object) -{ - dom_object *obj = Z_DOMOBJ_P(object); - HashTable *props = zend_std_get_properties(object); - - if (obj->prop_handler != NULL) { - zend_string *key; - dom_prop_handler *hnd; - - ZEND_HASH_FOREACH_STR_KEY_PTR(obj->prop_handler, key, hnd) { - zval val; - - if (hnd->read_func(obj, &val) == SUCCESS) { - zend_hash_update(props, key, &val); - } - } ZEND_HASH_FOREACH_END(); - } - return props; -} -/* }}} */ - static HashTable* dom_get_debug_info_helper(zval *object, int *is_temp) /* {{{ */ { dom_object *obj = Z_DOMOBJ_P(object); @@ -624,7 +602,6 @@ PHP_MINIT_FUNCTION(dom) dom_object_handlers.get_property_ptr_ptr = dom_get_property_ptr_ptr; dom_object_handlers.clone_obj = dom_objects_store_clone_obj; dom_object_handlers.has_property = dom_property_exists; - dom_object_handlers.get_properties = dom_get_properties; dom_object_handlers.get_debug_info = dom_get_debug_info; memcpy(&dom_nnodemap_object_handlers, &dom_object_handlers, sizeof(zend_object_handlers)); diff --git a/ext/dom/tests/bug79065.phpt b/ext/dom/tests/bug79065.phpt deleted file mode 100644 index 9f3f49b7c8..0000000000 --- a/ext/dom/tests/bug79065.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -Bug #79065 (DOM classes do not expose properties to Reflection) ---SKIPIF-- -<?php -if (!extension_loaded('dom')) die('skip dom extension not available'); -?> ---FILE-- -<?php -$dom = new DOMDocument; -$dom->loadHTML('<b>test</b>'); -var_dump(count(get_object_vars($dom))); - -$ro = new ReflectionObject($dom); -var_dump(count($ro->getProperties())); -var_dump($ro->hasProperty("textContent")); -$rp = $ro->getProperty("textContent"); -var_dump($rp); -var_dump($rp->getValue($dom)); -?> ---EXPECTF-- -int(35) -int(35) -bool(true) -object(ReflectionProperty)#%d (2) { - ["name"]=> - string(11) "textContent" - ["class"]=> - string(11) "DOMDocument" -} -string(4) "test" |