]> granicus.if.org Git - php/commitdiff
quick fix for #29382
authorStanislav Malyshev <stas@php.net>
Mon, 26 Jul 2004 17:12:17 +0000 (17:12 +0000)
committerStanislav Malyshev <stas@php.net>
Mon, 26 Jul 2004 17:12:17 +0000 (17:12 +0000)
Zend/zend_interfaces.c

index 69a546de60787e6f63fc61c9a7fb63c8913e4799..93263a4f170d803c3883e3cadffd90483922a306 100755 (executable)
@@ -272,7 +272,7 @@ static zend_object_iterator *zend_user_it_get_new_iterator(zend_class_entry *ce,
 
        zend_class_entry *ce_it = Z_TYPE_P(iterator) == IS_OBJECT ? Z_OBJCE_P(iterator) : NULL;
 
-       if (!ce || !ce_it || !ce_it->get_iterator) {
+       if (!ce || !ce_it || !ce_it->get_iterator || (ce_it->get_iterator == zend_user_it_get_new_iterator && iterator == object)) {
                zend_error(E_WARNING, "Objects returned by %s::getIterator() must be traversable or implement interface Iterator", ce->name);
                zval_ptr_dtor(&iterator);
                return NULL;