From 9ad129468ab3bb8263a181284af1c47dafc6c192 Mon Sep 17 00:00:00 2001 From: Rob Richards Date: Wed, 22 Jun 2005 19:56:30 +0000 Subject: [PATCH] - Fix bug #33299 (php:function no longer handles returned dom objects) - maybe fix #33431/33432 --- ext/dom/dom_ce.h | 60 ++++++++++++++++++++++---------------------- ext/dom/php_dom.c | 34 +++++++++++++++++++++++++ ext/dom/xml_common.h | 10 ++++---- 3 files changed, 69 insertions(+), 35 deletions(-) diff --git a/ext/dom/dom_ce.h b/ext/dom/dom_ce.h index ba6d05f721..dc730c2f62 100644 --- a/ext/dom/dom_ce.h +++ b/ext/dom/dom_ce.h @@ -21,37 +21,37 @@ #ifndef DOM_CE_H #define DOM_CE_H -zend_class_entry *dom_domexception_class_entry; -zend_class_entry *dom_domstringlist_class_entry; -zend_class_entry *dom_namelist_class_entry; -zend_class_entry *dom_domimplementationlist_class_entry; -zend_class_entry *dom_domimplementationsource_class_entry; -zend_class_entry *dom_domimplementation_class_entry; -zend_class_entry *dom_documentfragment_class_entry; -zend_class_entry *dom_document_class_entry; -zend_class_entry *dom_nodelist_class_entry; -zend_class_entry *dom_namednodemap_class_entry; -zend_class_entry *dom_characterdata_class_entry; -zend_class_entry *dom_attr_class_entry; -zend_class_entry *dom_element_class_entry; -zend_class_entry *dom_text_class_entry; -zend_class_entry *dom_comment_class_entry; -zend_class_entry *dom_typeinfo_class_entry; -zend_class_entry *dom_userdatahandler_class_entry; -zend_class_entry *dom_domerror_class_entry; -zend_class_entry *dom_domerrorhandler_class_entry; -zend_class_entry *dom_domlocator_class_entry; -zend_class_entry *dom_domconfiguration_class_entry; -zend_class_entry *dom_cdatasection_class_entry; -zend_class_entry *dom_documenttype_class_entry; -zend_class_entry *dom_notation_class_entry; -zend_class_entry *dom_entity_class_entry; -zend_class_entry *dom_entityreference_class_entry; -zend_class_entry *dom_processinginstruction_class_entry; -zend_class_entry *dom_string_extend_class_entry; +extern zend_class_entry *dom_domexception_class_entry; +extern zend_class_entry *dom_domstringlist_class_entry; +extern zend_class_entry *dom_namelist_class_entry; +extern zend_class_entry *dom_domimplementationlist_class_entry; +extern zend_class_entry *dom_domimplementationsource_class_entry; +extern zend_class_entry *dom_domimplementation_class_entry; +extern zend_class_entry *dom_documentfragment_class_entry; +extern zend_class_entry *dom_document_class_entry; +extern zend_class_entry *dom_nodelist_class_entry; +extern zend_class_entry *dom_namednodemap_class_entry; +extern zend_class_entry *dom_characterdata_class_entry; +extern zend_class_entry *dom_attr_class_entry; +extern zend_class_entry *dom_element_class_entry; +extern zend_class_entry *dom_text_class_entry; +extern zend_class_entry *dom_comment_class_entry; +extern zend_class_entry *dom_typeinfo_class_entry; +extern zend_class_entry *dom_userdatahandler_class_entry; +extern zend_class_entry *dom_domerror_class_entry; +extern zend_class_entry *dom_domerrorhandler_class_entry; +extern zend_class_entry *dom_domlocator_class_entry; +extern zend_class_entry *dom_domconfiguration_class_entry; +extern zend_class_entry *dom_cdatasection_class_entry; +extern zend_class_entry *dom_documenttype_class_entry; +extern zend_class_entry *dom_notation_class_entry; +extern zend_class_entry *dom_entity_class_entry; +extern zend_class_entry *dom_entityreference_class_entry; +extern zend_class_entry *dom_processinginstruction_class_entry; +extern zend_class_entry *dom_string_extend_class_entry; #if defined(LIBXML_XPATH_ENABLED) -zend_class_entry *dom_xpath_class_entry; +extern zend_class_entry *dom_xpath_class_entry; #endif -zend_class_entry *dom_namespace_node_class_entry; +extern zend_class_entry *dom_namespace_node_class_entry; #endif /* DOM_CE_H */ diff --git a/ext/dom/php_dom.c b/ext/dom/php_dom.c index de5179f052..2123b1bbf6 100644 --- a/ext/dom/php_dom.c +++ b/ext/dom/php_dom.c @@ -34,6 +34,40 @@ #define PHP_XPATH 1 #define PHP_XPTR 2 +zend_class_entry *dom_node_class_entry; +zend_class_entry *dom_domexception_class_entry; +zend_class_entry *dom_domstringlist_class_entry; +zend_class_entry *dom_namelist_class_entry; +zend_class_entry *dom_domimplementationlist_class_entry; +zend_class_entry *dom_domimplementationsource_class_entry; +zend_class_entry *dom_domimplementation_class_entry; +zend_class_entry *dom_documentfragment_class_entry; +zend_class_entry *dom_document_class_entry; +zend_class_entry *dom_nodelist_class_entry; +zend_class_entry *dom_namednodemap_class_entry; +zend_class_entry *dom_characterdata_class_entry; +zend_class_entry *dom_attr_class_entry; +zend_class_entry *dom_element_class_entry; +zend_class_entry *dom_text_class_entry; +zend_class_entry *dom_comment_class_entry; +zend_class_entry *dom_typeinfo_class_entry; +zend_class_entry *dom_userdatahandler_class_entry; +zend_class_entry *dom_domerror_class_entry; +zend_class_entry *dom_domerrorhandler_class_entry; +zend_class_entry *dom_domlocator_class_entry; +zend_class_entry *dom_domconfiguration_class_entry; +zend_class_entry *dom_cdatasection_class_entry; +zend_class_entry *dom_documenttype_class_entry; +zend_class_entry *dom_notation_class_entry; +zend_class_entry *dom_entity_class_entry; +zend_class_entry *dom_entityreference_class_entry; +zend_class_entry *dom_processinginstruction_class_entry; +zend_class_entry *dom_string_extend_class_entry; +#if defined(LIBXML_XPATH_ENABLED) +zend_class_entry *dom_xpath_class_entry; +#endif +zend_class_entry *dom_namespace_node_class_entry; + zend_object_handlers dom_object_handlers; zend_object_handlers dom_ze1_object_handlers; diff --git a/ext/dom/xml_common.h b/ext/dom/xml_common.h index 6e0c23fcca..a95065058c 100644 --- a/ext/dom/xml_common.h +++ b/ext/dom/xml_common.h @@ -55,12 +55,12 @@ typedef struct _dom_object { #endif /* DOM_EXPORTS */ #endif /* PHP_WIN32 */ -#define PHP_DOM_EXPORT(__type) PHPAPI __type +#define PHP_DOM_EXPORT PHPAPI -PHP_DOM_EXPORT(zend_class_entry *) dom_node_class_entry; -PHP_DOM_EXPORT(dom_object *) php_dom_object_get_data(xmlNodePtr obj); -PHP_DOM_EXPORT(zval *) php_dom_create_object(xmlNodePtr obj, int *found, zval *in, zval* return_value, dom_object *domobj TSRMLS_DC); -PHP_DOM_EXPORT(xmlNodePtr) dom_object_get_node(dom_object *obj); +PHP_DOM_EXPORT extern zend_class_entry *dom_node_class_entry; +PHP_DOM_EXPORT dom_object *php_dom_object_get_data(xmlNodePtr obj); +PHP_DOM_EXPORT zval *php_dom_create_object(xmlNodePtr obj, int *found, zval *in, zval* return_value, dom_object *domobj TSRMLS_DC); +PHP_DOM_EXPORT xmlNodePtr dom_object_get_node(dom_object *obj); #define DOM_XMLNS_NAMESPACE \ (const xmlChar *) "http://www.w3.org/2000/xmlns/" -- 2.50.1