rrichards Tue Dec 2 10:17:03 2003 EDT
Modified files:
/php-src/ext/dom php_dom.c node.c
Log:
check node type for ->attributes and ->childNodes
Index: php-src/ext/dom/php_dom.c
diff -u php-src/ext/dom/php_dom.c:1.42 php-src/ext/dom/php_dom.c:1.43
--- php-src/ext/dom/php_dom.c:1.42 Sun Nov 30 07:30:29 2003
+++ php-src/ext/dom/php_dom.c Tue Dec 2 10:17:02 2003
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_dom.c,v 1.42 2003/11/30 12:30:29 rrichards Exp $ */
+/* $Id: php_dom.c,v 1.43 2003/12/02 15:17:02 rrichards Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -103,6 +103,7 @@
case XML_COMMENT_NODE:
case XML_TEXT_NODE:
case XML_CDATA_SECTION_NODE:
+ case XML_NOTATION_NODE:
return FAILURE;
break;
default:
Index: php-src/ext/dom/node.c
diff -u php-src/ext/dom/node.c:1.16 php-src/ext/dom/node.c:1.17
--- php-src/ext/dom/node.c:1.16 Sat Nov 29 15:40:17 2003
+++ php-src/ext/dom/node.c Tue Dec 2 10:17:02 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: node.c,v 1.16 2003/11/29 20:40:17 rrichards Exp $ */
+/* $Id: node.c,v 1.17 2003/12/02 15:17:02 rrichards Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -279,13 +279,20 @@
*/
int dom_node_child_nodes_read(dom_object *obj, zval **retval TSRMLS_DC)
{
+ xmlNode *nodep;
dom_object *intern;
- ALLOC_ZVAL(*retval);
- php_dom_create_interator(*retval, DOM_NODELIST TSRMLS_CC);
+ nodep = dom_object_get_node(obj);
- intern = (dom_object *)zend_objects_get_address(*retval TSRMLS_CC);
- dom_namednode_iter(obj, XML_ELEMENT_NODE, intern, NULL, NULL, NULL);
+ ALLOC_ZVAL(*retval);
+
+ if (dom_node_children_valid(nodep) == FAILURE) {
+ ZVAL_NULL(*retval);
+ } else {
+ php_dom_create_interator(*retval, DOM_NODELIST TSRMLS_CC);
+ intern = (dom_object *)zend_objects_get_address(*retval TSRMLS_CC);
+ dom_namednode_iter(obj, XML_ELEMENT_NODE, intern, NULL, NULL, NULL);
+ }
return SUCCESS;
}
@@ -427,13 +434,20 @@
*/
int dom_node_attributes_read(dom_object *obj, zval **retval TSRMLS_DC)
{
+ xmlNode *nodep;
dom_object *intern;
+ nodep = dom_object_get_node(obj);
+
ALLOC_ZVAL(*retval);
- php_dom_create_interator(*retval, DOM_NAMEDNODEMAP TSRMLS_CC);
- intern = (dom_object *)zend_objects_get_address(*retval TSRMLS_CC);
- dom_namednode_iter(obj, XML_ATTRIBUTE_NODE, intern, NULL, NULL, NULL);
+ if (nodep->type == XML_ELEMENT_NODE) {
+ php_dom_create_interator(*retval, DOM_NAMEDNODEMAP TSRMLS_CC);
+ intern = (dom_object *)zend_objects_get_address(*retval TSRMLS_CC);
+ dom_namednode_iter(obj, XML_ATTRIBUTE_NODE, intern, NULL, NULL, NULL);
+ } else {
+ ZVAL_NULL(*retval);
+ }
return SUCCESS;
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php