summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-04-28 15:09:41 +0200
committerNikita Popov <nikita.ppv@gmail.com>2020-04-28 15:09:41 +0200
commit75470bc312ef2e151696ea5c1ee026c089944623 (patch)
treec66425c87d02c6b6b20cbbf9ef846036d9acf631
parent817e100a72eb7815052c0dcca668b2549c4d7619 (diff)
downloadphp-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--NEWS2
-rw-r--r--ext/dom/php_dom.c23
-rw-r--r--ext/dom/tests/bug79065.phpt30
3 files changed, 0 insertions, 55 deletions
diff --git a/NEWS b/NEWS
index 0fecf66f7f..ba008a7ba7 100644
--- a/NEWS
+++ b/NEWS
@@ -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"