From: Marcus Boerger Date: Mon, 27 Sep 2004 08:34:49 +0000 (+0000) Subject: MFH (1 fix, 1 warning) X-Git-Tag: php-5.0.3RC1~208 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5d5e004b34c526b8ecf8029181378a2fa4e6562b;p=php MFH (1 fix, 1 warning) --- diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c index 69a546de60..7ab33a5809 100755 --- a/Zend/zend_interfaces.c +++ b/Zend/zend_interfaces.c @@ -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; @@ -287,7 +287,7 @@ static zend_object_iterator *zend_user_it_get_new_iterator(zend_class_entry *ce, static int zend_implement_traversable(zend_class_entry *interface, zend_class_entry *class_type TSRMLS_DC) { /* check that class_type is traversable at c-level or implements at least one of 'aggregate' and 'Iterator' */ - int i; + zend_uint i; if (class_type->get_iterator || (class_type->parent && class_type->parent->get_iterator)) { return SUCCESS;