helly Sun Mar 26 00:22:45 2006 UTC
Modified files:
/php-src/ext/spl spl_iterators.c
Log:
- Make IteratorIterator base class of most SPL iterators
http://cvs.php.net/viewcvs.cgi/php-src/ext/spl/spl_iterators.c?r1=1.121&r2=1.122&diff_format=u
Index: php-src/ext/spl/spl_iterators.c
diff -u php-src/ext/spl/spl_iterators.c:1.121
php-src/ext/spl/spl_iterators.c:1.122
--- php-src/ext/spl/spl_iterators.c:1.121 Thu Mar 23 22:25:46 2006
+++ php-src/ext/spl/spl_iterators.c Sun Mar 26 00:22:45 2006
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_iterators.c,v 1.121 2006/03/23 22:25:46 helly Exp $ */
+/* $Id: spl_iterators.c,v 1.122 2006/03/26 00:22:45 helly Exp $ */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -2488,8 +2488,13 @@
REGISTER_SPL_CLASS_CONST_LONG(RecursiveIteratorIterator, "CHILD_FIRST",
RIT_CHILD_FIRST);
REGISTER_SPL_CLASS_CONST_LONG(RecursiveIteratorIterator,
"CATCH_GET_CHILD", RIT_CATCH_GET_CHILD);
- REGISTER_SPL_STD_CLASS_EX(FilterIterator, spl_dual_it_new,
spl_funcs_FilterIterator);
- REGISTER_SPL_ITERATOR(FilterIterator);
+ REGISTER_SPL_INTERFACE(OuterIterator);
+ REGISTER_SPL_ITERATOR(OuterIterator);
+
+ REGISTER_SPL_STD_CLASS_EX(IteratorIterator, spl_dual_it_new,
spl_funcs_IteratorIterator);
+ REGISTER_SPL_ITERATOR(IteratorIterator);
+
+ REGISTER_SPL_SUB_CLASS_EX(FilterIterator, IteratorIterator,
spl_dual_it_new, spl_funcs_FilterIterator);
spl_ce_FilterIterator->ce_flags |= ZEND_ACC_EXPLICIT_ABSTRACT_CLASS;
REGISTER_SPL_SUB_CLASS_EX(RecursiveFilterIterator, FilterIterator,
spl_dual_it_new, spl_funcs_RecursiveFilterIterator);
@@ -2500,11 +2505,9 @@
REGISTER_SPL_INTERFACE(SeekableIterator);
REGISTER_SPL_ITERATOR(SeekableIterator);
- REGISTER_SPL_STD_CLASS_EX(LimitIterator, spl_dual_it_new,
spl_funcs_LimitIterator);
- REGISTER_SPL_ITERATOR(LimitIterator);
+ REGISTER_SPL_SUB_CLASS_EX(LimitIterator, IteratorIterator,
spl_dual_it_new, spl_funcs_LimitIterator);
- REGISTER_SPL_STD_CLASS_EX(CachingIterator, spl_dual_it_new,
spl_funcs_CachingIterator);
- REGISTER_SPL_ITERATOR(CachingIterator);
+ REGISTER_SPL_SUB_CLASS_EX(CachingIterator, IteratorIterator,
spl_dual_it_new, spl_funcs_CachingIterator);
REGISTER_SPL_IMPLEMENTS(CachingIterator, ArrayAccess);
REGISTER_SPL_CLASS_CONST_LONG(CachingIterator, "CALL_TOSTRING",
CIT_CALL_TOSTRING);
@@ -2516,24 +2519,11 @@
REGISTER_SPL_SUB_CLASS_EX(RecursiveCachingIterator, CachingIterator,
spl_dual_it_new, spl_funcs_RecursiveCachingIterator);
REGISTER_SPL_IMPLEMENTS(RecursiveCachingIterator, RecursiveIterator);
- REGISTER_SPL_STD_CLASS_EX(IteratorIterator, spl_dual_it_new,
spl_funcs_IteratorIterator);
- REGISTER_SPL_ITERATOR(IteratorIterator);
-
- REGISTER_SPL_STD_CLASS_EX(NoRewindIterator, spl_dual_it_new,
spl_funcs_NoRewindIterator);
- REGISTER_SPL_ITERATOR(NoRewindIterator);
-
- REGISTER_SPL_INTERFACE(OuterIterator);
- REGISTER_SPL_ITERATOR(OuterIterator);
+ REGISTER_SPL_SUB_CLASS_EX(NoRewindIterator, IteratorIterator,
spl_dual_it_new, spl_funcs_NoRewindIterator);
- REGISTER_SPL_STD_CLASS_EX(AppendIterator, spl_dual_it_new,
spl_funcs_AppendIterator);
+ REGISTER_SPL_SUB_CLASS_EX(AppendIterator, IteratorIterator,
spl_dual_it_new, spl_funcs_AppendIterator);
REGISTER_SPL_IMPLEMENTS(RecursiveIteratorIterator, OuterIterator);
- REGISTER_SPL_IMPLEMENTS(CachingIterator, OuterIterator);
- REGISTER_SPL_IMPLEMENTS(FilterIterator, OuterIterator);
- REGISTER_SPL_IMPLEMENTS(LimitIterator, OuterIterator);
- REGISTER_SPL_IMPLEMENTS(IteratorIterator, OuterIterator);
- REGISTER_SPL_IMPLEMENTS(NoRewindIterator, OuterIterator);
- REGISTER_SPL_IMPLEMENTS(AppendIterator, OuterIterator);
REGISTER_SPL_SUB_CLASS_EX(InfiniteIterator, IteratorIterator,
spl_dual_it_new, spl_funcs_InfiniteIterator);
#if HAVE_PCRE || HAVE_BUNDLED_PCRE
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php