diff --git a/UPGRADING.INTERNALS b/UPGRADING.INTERNALS index bc959eb5038..6f35c599832 100644 --- a/UPGRADING.INTERNALS +++ b/UPGRADING.INTERNALS @@ -55,6 +55,7 @@ PHP 8.4 INTERNALS UPGRADE NOTES d. ext/libxml - Added php_libxml_pretend_ctx_error_ex() to emit errors as if they had come from libxml. + - Removed the "properties" HashTable field from php_libxml_node_object. e. ext/date - Added the php_format_date_ex() API to format instances of php_date_obj. diff --git a/ext/libxml/libxml.c b/ext/libxml/libxml.c index 1e0459aee72..6d7f567b959 100644 --- a/ext/libxml/libxml.c +++ b/ext/libxml/libxml.c @@ -152,15 +152,6 @@ static void php_libxml_unlink_entity(void *data, void *table, xmlChar *name) } /* {{{ internal functions for interoperability */ -static int php_libxml_clear_object(php_libxml_node_object *object) -{ - if (object->properties) { - object->properties = NULL; - } - php_libxml_decrement_node_ptr(object); - return php_libxml_decrement_doc_ref(object); -} - static void php_libxml_unregister_node(xmlNodePtr nodep) { php_libxml_node_object *wrapper; @@ -170,7 +161,8 @@ static void php_libxml_unregister_node(xmlNodePtr nodep) if (nodeptr != NULL) { wrapper = nodeptr->_private; if (wrapper) { - php_libxml_clear_object(wrapper); + php_libxml_decrement_node_ptr(wrapper); + php_libxml_decrement_doc_ref(wrapper); } else { if (nodeptr->node != NULL && nodeptr->node->type != XML_DOCUMENT_NODE) { nodeptr->node->_private = NULL; diff --git a/ext/libxml/php_libxml.h b/ext/libxml/php_libxml.h index e920a0a9359..f7aabc00bf4 100644 --- a/ext/libxml/php_libxml.h +++ b/ext/libxml/php_libxml.h @@ -79,7 +79,6 @@ typedef struct _php_libxml_node_ptr { typedef struct _php_libxml_node_object { php_libxml_node_ptr *node; php_libxml_ref_obj *document; - HashTable *properties; zend_object std; } php_libxml_node_object;