Skip to content

Commit 9ad1294

Browse files
author
Rob Richards
committed
- Fix bug #33299 (php:function no longer handles returned dom objects)
- maybe fix #33431/33432
1 parent 49c2332 commit 9ad1294

File tree

3 files changed

+69
-35
lines changed

3 files changed

+69
-35
lines changed

ext/dom/dom_ce.h

+30-30
Original file line numberDiff line numberDiff line change
@@ -21,37 +21,37 @@
2121
#ifndef DOM_CE_H
2222
#define DOM_CE_H
2323

24-
zend_class_entry *dom_domexception_class_entry;
25-
zend_class_entry *dom_domstringlist_class_entry;
26-
zend_class_entry *dom_namelist_class_entry;
27-
zend_class_entry *dom_domimplementationlist_class_entry;
28-
zend_class_entry *dom_domimplementationsource_class_entry;
29-
zend_class_entry *dom_domimplementation_class_entry;
30-
zend_class_entry *dom_documentfragment_class_entry;
31-
zend_class_entry *dom_document_class_entry;
32-
zend_class_entry *dom_nodelist_class_entry;
33-
zend_class_entry *dom_namednodemap_class_entry;
34-
zend_class_entry *dom_characterdata_class_entry;
35-
zend_class_entry *dom_attr_class_entry;
36-
zend_class_entry *dom_element_class_entry;
37-
zend_class_entry *dom_text_class_entry;
38-
zend_class_entry *dom_comment_class_entry;
39-
zend_class_entry *dom_typeinfo_class_entry;
40-
zend_class_entry *dom_userdatahandler_class_entry;
41-
zend_class_entry *dom_domerror_class_entry;
42-
zend_class_entry *dom_domerrorhandler_class_entry;
43-
zend_class_entry *dom_domlocator_class_entry;
44-
zend_class_entry *dom_domconfiguration_class_entry;
45-
zend_class_entry *dom_cdatasection_class_entry;
46-
zend_class_entry *dom_documenttype_class_entry;
47-
zend_class_entry *dom_notation_class_entry;
48-
zend_class_entry *dom_entity_class_entry;
49-
zend_class_entry *dom_entityreference_class_entry;
50-
zend_class_entry *dom_processinginstruction_class_entry;
51-
zend_class_entry *dom_string_extend_class_entry;
24+
extern zend_class_entry *dom_domexception_class_entry;
25+
extern zend_class_entry *dom_domstringlist_class_entry;
26+
extern zend_class_entry *dom_namelist_class_entry;
27+
extern zend_class_entry *dom_domimplementationlist_class_entry;
28+
extern zend_class_entry *dom_domimplementationsource_class_entry;
29+
extern zend_class_entry *dom_domimplementation_class_entry;
30+
extern zend_class_entry *dom_documentfragment_class_entry;
31+
extern zend_class_entry *dom_document_class_entry;
32+
extern zend_class_entry *dom_nodelist_class_entry;
33+
extern zend_class_entry *dom_namednodemap_class_entry;
34+
extern zend_class_entry *dom_characterdata_class_entry;
35+
extern zend_class_entry *dom_attr_class_entry;
36+
extern zend_class_entry *dom_element_class_entry;
37+
extern zend_class_entry *dom_text_class_entry;
38+
extern zend_class_entry *dom_comment_class_entry;
39+
extern zend_class_entry *dom_typeinfo_class_entry;
40+
extern zend_class_entry *dom_userdatahandler_class_entry;
41+
extern zend_class_entry *dom_domerror_class_entry;
42+
extern zend_class_entry *dom_domerrorhandler_class_entry;
43+
extern zend_class_entry *dom_domlocator_class_entry;
44+
extern zend_class_entry *dom_domconfiguration_class_entry;
45+
extern zend_class_entry *dom_cdatasection_class_entry;
46+
extern zend_class_entry *dom_documenttype_class_entry;
47+
extern zend_class_entry *dom_notation_class_entry;
48+
extern zend_class_entry *dom_entity_class_entry;
49+
extern zend_class_entry *dom_entityreference_class_entry;
50+
extern zend_class_entry *dom_processinginstruction_class_entry;
51+
extern zend_class_entry *dom_string_extend_class_entry;
5252
#if defined(LIBXML_XPATH_ENABLED)
53-
zend_class_entry *dom_xpath_class_entry;
53+
extern zend_class_entry *dom_xpath_class_entry;
5454
#endif
55-
zend_class_entry *dom_namespace_node_class_entry;
55+
extern zend_class_entry *dom_namespace_node_class_entry;
5656

5757
#endif /* DOM_CE_H */

ext/dom/php_dom.c

+34
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,40 @@
3434
#define PHP_XPATH 1
3535
#define PHP_XPTR 2
3636

37+
zend_class_entry *dom_node_class_entry;
38+
zend_class_entry *dom_domexception_class_entry;
39+
zend_class_entry *dom_domstringlist_class_entry;
40+
zend_class_entry *dom_namelist_class_entry;
41+
zend_class_entry *dom_domimplementationlist_class_entry;
42+
zend_class_entry *dom_domimplementationsource_class_entry;
43+
zend_class_entry *dom_domimplementation_class_entry;
44+
zend_class_entry *dom_documentfragment_class_entry;
45+
zend_class_entry *dom_document_class_entry;
46+
zend_class_entry *dom_nodelist_class_entry;
47+
zend_class_entry *dom_namednodemap_class_entry;
48+
zend_class_entry *dom_characterdata_class_entry;
49+
zend_class_entry *dom_attr_class_entry;
50+
zend_class_entry *dom_element_class_entry;
51+
zend_class_entry *dom_text_class_entry;
52+
zend_class_entry *dom_comment_class_entry;
53+
zend_class_entry *dom_typeinfo_class_entry;
54+
zend_class_entry *dom_userdatahandler_class_entry;
55+
zend_class_entry *dom_domerror_class_entry;
56+
zend_class_entry *dom_domerrorhandler_class_entry;
57+
zend_class_entry *dom_domlocator_class_entry;
58+
zend_class_entry *dom_domconfiguration_class_entry;
59+
zend_class_entry *dom_cdatasection_class_entry;
60+
zend_class_entry *dom_documenttype_class_entry;
61+
zend_class_entry *dom_notation_class_entry;
62+
zend_class_entry *dom_entity_class_entry;
63+
zend_class_entry *dom_entityreference_class_entry;
64+
zend_class_entry *dom_processinginstruction_class_entry;
65+
zend_class_entry *dom_string_extend_class_entry;
66+
#if defined(LIBXML_XPATH_ENABLED)
67+
zend_class_entry *dom_xpath_class_entry;
68+
#endif
69+
zend_class_entry *dom_namespace_node_class_entry;
70+
3771
zend_object_handlers dom_object_handlers;
3872
zend_object_handlers dom_ze1_object_handlers;
3973

ext/dom/xml_common.h

+5-5
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,12 @@ typedef struct _dom_object {
5555
#endif /* DOM_EXPORTS */
5656
#endif /* PHP_WIN32 */
5757

58-
#define PHP_DOM_EXPORT(__type) PHPAPI __type
58+
#define PHP_DOM_EXPORT PHPAPI
5959

60-
PHP_DOM_EXPORT(zend_class_entry *) dom_node_class_entry;
61-
PHP_DOM_EXPORT(dom_object *) php_dom_object_get_data(xmlNodePtr obj);
62-
PHP_DOM_EXPORT(zval *) php_dom_create_object(xmlNodePtr obj, int *found, zval *in, zval* return_value, dom_object *domobj TSRMLS_DC);
63-
PHP_DOM_EXPORT(xmlNodePtr) dom_object_get_node(dom_object *obj);
60+
PHP_DOM_EXPORT extern zend_class_entry *dom_node_class_entry;
61+
PHP_DOM_EXPORT dom_object *php_dom_object_get_data(xmlNodePtr obj);
62+
PHP_DOM_EXPORT zval *php_dom_create_object(xmlNodePtr obj, int *found, zval *in, zval* return_value, dom_object *domobj TSRMLS_DC);
63+
PHP_DOM_EXPORT xmlNodePtr dom_object_get_node(dom_object *obj);
6464

6565
#define DOM_XMLNS_NAMESPACE \
6666
(const xmlChar *) "http://www.w3.org/2000/xmlns/"

0 commit comments

Comments
 (0)