summaryrefslogtreecommitdiff
path: root/ext/domxml/php_domxml.c
diff options
context:
space:
mode:
authorAndrei Zmievski <andrei@php.net>2000-10-20 18:25:16 +0000
committerAndrei Zmievski <andrei@php.net>2000-10-20 18:25:16 +0000
commit7b4983c8f82c4f361df787f58c6f5cf88d5def0b (patch)
treee38e8ffceb65a0f2492b28e2b07c8668fcddeda4 /ext/domxml/php_domxml.c
parenta0cfab65ea72963f81a3440a3587d11bd7800337 (diff)
downloadphp-git-7b4983c8f82c4f361df787f58c6f5cf88d5def0b.tar.gz
Mega-patch to get better resource information for modules.
* Fixed a bug in zend_rsrc_list_get_rsrc_type() * Switched register_list_destructors() to use zend_register_list_destructors_ex() instead * Updated all relevant modules to provide the resource type name to register_list_destructors() call * Updated var_dump() to output resource type name instead of number @- Made resource type names visible, e.g. var_dump() and @ get_resource_type() display "file" for file resources. (Andrei)
Diffstat (limited to 'ext/domxml/php_domxml.c')
-rw-r--r--ext/domxml/php_domxml.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/ext/domxml/php_domxml.c b/ext/domxml/php_domxml.c
index 7ddd1e1c63..49431aac74 100644
--- a/ext/domxml/php_domxml.c
+++ b/ext/domxml/php_domxml.c
@@ -111,7 +111,13 @@ zend_module_entry domxml_module_entry = {
ZEND_GET_MODULE(domxml)
#endif
-void _free_node(xmlNode *tmp) {
+static void php_free_xml_doc(zend_rsrc_list_entry *rsrc)
+{
+ xmlDoc *doc = (xmlDoc *)rsrc->ptr;
+ xmlFreeDoc(doc);
+}
+
+void _free_node(zend_rsrc_list_entry *rsrc) {
/*fprintf(stderr, "Freeing node: %s\n", tmp->name);*/
}
@@ -127,12 +133,12 @@ PHP_MINIT_FUNCTION(domxml)
domxmltestnode_class_startup();
#endif
- le_domxmldocp = register_list_destructors(xmlFreeDoc, NULL);
+ le_domxmldocp = register_list_destructors(xmlFreeDoc, NULL, "domxml document");
/* Freeing the document contains freeing the complete tree.
Therefore nodes, attributes etc. may not be freed seperately.
*/
- le_domxmlnodep = register_list_destructors(_free_node, NULL);
- le_domxmlattrp = register_list_destructors(NULL, NULL);
+ le_domxmlnodep = register_list_destructors(_free_node, NULL, "domxml node");
+ le_domxmlattrp = register_list_destructors(NULL, NULL, "domxml attribute");
/* le_domxmlnsp = register_list_destructors(NULL, NULL); */
INIT_CLASS_ENTRY(domxmldoc_class_entry, "DomDocument", php_domxmldoc_class_functions);