]> granicus.if.org Git - php/commitdiff
fix bug #51721 (mark DOMNodeList and DOMNamedNodeMap as Traversable)
authorRob Richards <rrichards@php.net>
Tue, 4 May 2010 12:55:26 +0000 (12:55 +0000)
committerRob Richards <rrichards@php.net>
Tue, 4 May 2010 12:55:26 +0000 (12:55 +0000)
ext/dom/php_dom.c

index 0ad4aa1e75ab31bffd80f288b3d1ea818247f7c1..eb364a73b284ef194155278be06e2b93ea4f0966 100644 (file)
@@ -29,6 +29,7 @@
 #include "ext/standard/php_rand.h"
 #include "php_dom.h"
 #include "dom_properties.h"
+#include "zend_interfaces.h"
 
 #include "ext/standard/info.h"
 #define PHP_XPATH 1
@@ -680,6 +681,7 @@ PHP_MINIT_FUNCTION(dom)
        ce.create_object = dom_nnodemap_objects_new;
        dom_nodelist_class_entry = zend_register_internal_class_ex(&ce, NULL, NULL TSRMLS_CC);
        dom_nodelist_class_entry->get_iterator = php_dom_get_iterator;
+       zend_class_implements(dom_nodelist_class_entry TSRMLS_CC, 1, zend_ce_traversable);
 
        zend_hash_init(&dom_nodelist_prop_handlers, 0, NULL, NULL, 1);
        dom_register_prop_handler(&dom_nodelist_prop_handlers, "length", dom_nodelist_length_read, NULL TSRMLS_CC);
@@ -689,6 +691,7 @@ PHP_MINIT_FUNCTION(dom)
        ce.create_object = dom_nnodemap_objects_new;
        dom_namednodemap_class_entry = zend_register_internal_class_ex(&ce, NULL, NULL TSRMLS_CC);
        dom_namednodemap_class_entry->get_iterator = php_dom_get_iterator;
+       zend_class_implements(dom_namednodemap_class_entry TSRMLS_CC, 1, zend_ce_traversable);
 
        zend_hash_init(&dom_namednodemap_prop_handlers, 0, NULL, NULL, 1);
        dom_register_prop_handler(&dom_namednodemap_prop_handlers, "length", dom_namednodemap_length_read, NULL TSRMLS_CC);