Commit Graph

170 Commits

Author SHA1 Message Date
Dmitry Stogov
aedbdb087d Allowed return by refrence from internal functions 2005-06-16 14:56:13 +00:00
Marcus Boerger
626d781afd - Execute both RecursiveIteratorIterator::beginChildren() and endChildren()
on the same level (while the actual child is available).
2005-05-14 16:40:58 +00:00
Marcus Boerger
530917b463 - Make iterator_to_array() accept Traversable 2005-03-31 21:49:47 +00:00
Marcus Boerger
f9de3fd02b - Allow to hook into RecursiveIteratorIterator's child handling
- Better=faster function caching for RecursiveIteratorIterator
- Check for exceptions and fix check for illegal return values
- Add UnexpectedValueException
- Add docu
2005-03-12 23:03:33 +00:00
Marcus Boerger
16f0329a52 - Fix problem with exception in other methods, too 2005-03-06 23:07:43 +00:00
Marcus Boerger
0d1e43711a - Fix problem with exceptions in hasChildren calls 2005-03-06 22:57:05 +00:00
Marcus Boerger
76c5d53993 - Need to store class entry 2005-03-01 10:05:12 +00:00
Marcus Boerger
5f1c3f4a7e - Allow to convert traversable into Iterator 2005-02-23 01:03:16 +00:00
Marcus Boerger
3c36e73b95 - bugfix 31348 2005-01-24 20:21:11 +00:00
Antony Dovgal
6528b1b0b4 more typos 2004-12-29 16:11:42 +00:00
Antony Dovgal
0460f73db2 MFB: fix typos 2004-12-29 13:53:40 +00:00
Marcus Boerger
9c0f5e8887 - Use appropriate exception class where possible 2004-11-11 19:36:27 +00:00
Marcus Boerger
5dbb0aaa24 - Drop debug message 2004-11-11 19:31:27 +00:00
Marcus Boerger
31165806f8 - Simplify construction of RecursiveIteratorIterator 2004-11-08 13:44:34 +00:00
Frank M. Kromann
6a15a50d35 oops missed a couple!
Add termination block to function table. This will allow the engine to stop registreting functions at the end.
This fixes the - duplicate name - warning
2004-11-03 01:20:16 +00:00
Frank M. Kromann
93da44811e Add termination block to function table. This will allow the engine to stop registreting functions at the end.
This fixes the - duplicate name - warning
2004-11-03 01:16:10 +00:00
Marcus Boerger
e1dfbfc695 - Don't call beginChildren/endChildren if they don't do anything 2004-11-01 23:16:43 +00:00
Marcus Boerger
533e39ecf7 - Cache function lookup 2004-11-01 23:02:10 +00:00
Marcus Boerger
3b7e24cab2 - Add RecursiveIteratorIterator::beginChildren(), endChildren() 2004-11-01 22:54:12 +00:00
Marcus Boerger
2ce7bcd742 - Allow direct access to spl class entries (SPL cannot be build shared) 2004-11-01 20:57:23 +00:00
Marcus Boerger
bd40510b62 - Two new exceptions
- Make use of new exception classes
2004-11-01 17:39:59 +00:00
Marcus Boerger
b9470609ad - Minor fixes
- Implement AppendIterator in C
2004-11-01 00:26:59 +00:00
Marcus Boerger
9626e9859a - Implement EmptyIterator in C 2004-10-31 20:59:39 +00:00
Marcus Boerger
de3a8ea3e1 - Implement InfiniteIterator in C 2004-10-31 19:49:18 +00:00
Marcus Boerger
a872cb0d8d - Aggregate inner iterator for RecursiveIteratorIterator 2004-10-31 19:05:19 +00:00
Marcus Boerger
90012aa3cc - Implement classes IteratorIterator and NoRewindIterator in C 2004-10-31 18:43:00 +00:00
Marcus Boerger
861bad634a - Fix inner iterator aggregation 2004-10-30 19:12:14 +00:00
Marcus Boerger
8bf02ee681 - Fix protos 2004-10-30 10:18:10 +00:00
Marcus Boerger
7c4760d421 - Fix proto 2004-10-30 10:04:37 +00:00
Marcus Boerger
208a97a221 - Implement OuterIterator in C 2004-10-29 20:12:57 +00:00
Marcus Boerger
6349f46e38 - Added iterator_to_array() and iterator_count() 2004-10-07 23:08:19 +00:00
Marcus Boerger
b1326c1c24 - Fix problem when inner constructor isn't called from derived constructor
(foound by david)
2004-07-28 22:53:10 +00:00
Zeev Suraski
846c5a252e Fix typo 2004-05-31 08:58:32 +00:00
Zeev Suraski
e11b518c95 Fix prototype 2004-05-30 17:32:32 +00:00
Marcus Boerger
6882000c53 - Make start and length parameter to Limititerator::__construct optional 2004-05-18 20:39:35 +00:00
Marcus Boerger
a9070ba130 Add protos 2004-05-06 09:01:31 +00:00
Marcus Boerger
11690da164 - Some pretection against out-of-memory situations 2004-04-27 17:12:11 +00:00
Marcus Boerger
7f37b3f651 Fix LimitIterator by using new handler 2004-04-27 15:41:26 +00:00
Marcus Boerger
5b755c40ea Fix several issues
- bugfix #27063
- bugfix #27929
- bugfix #28099
- bugfix #28125
# The amount of code is needed to solve the return by reference problem.
# dual_it and derived also need their own iterator handlers to be able
# to return by reference.
2004-04-25 11:14:11 +00:00
Marcus Boerger
00da44519c Bugfix #27997 2004-04-14 23:26:56 +00:00
Marcus Boerger
42370213f7 Fix toString() issue again 2004-04-08 22:46:43 +00:00
Marcus Boerger
dce131ebcd Add agrument type info 2004-03-28 17:04:11 +00:00
Marcus Boerger
851c254ef8 Fix CachingIterator's ability to cache string conversion results.
Add a test for that.
2004-03-17 19:58:32 +00:00
Marcus Boerger
426649067c Make use of zend_make_printable_zval() instead of 'manually' calling
__toString().
2004-03-16 10:17:59 +00:00
Marcus Boerger
1b060f3614 Access to inner iterator was missing 2004-03-09 17:35:18 +00:00
Marcus Boerger
50ee116f08 Clearify the different method/class flags (as discussed with Andi). 2004-03-09 16:38:37 +00:00
Marcus Boerger
6b0f57ee50 Rename hasMore() to valid() as discussed. (Part II) 2004-03-08 18:05:41 +00:00
Marcus Boerger
b6b7c9eb65 Rename hasMore() to valid() as discussed. (Part I) 2004-03-08 17:33:31 +00:00
Ard Biesheuvel
81f05c18f5 Wordsize fixes 2004-02-25 20:16:27 +00:00
Zeev Suraski
bec3adb801 Fix signature
Marcus - please make sure that this is ok.  Generally you are no longer
allowed to override a method and with an incompatible signature
2004-02-25 14:58:47 +00:00
Zeev Suraski
30171a7590 zend_default_classes.h -> zend_exceptions.h 2004-02-12 10:43:27 +00:00
Zeev Suraski
d89b7b23f9 API updates 2004-02-04 12:45:47 +00:00
Marcus Boerger
390ae1a8b8 - Fix second issue with #27042
- Little improvement
- Update test
2004-01-28 22:59:03 +00:00
Marcus Boerger
a43693eaf0 Must use zval* here 2004-01-26 23:59:50 +00:00
Marcus Boerger
5ac404eb64 Fixed bug #27042 (SPL: SeekableIterator seek() broken). 2004-01-26 22:30:25 +00:00
Marcus Boerger
3b207ccb12 Add cvs tags 2004-01-20 20:59:45 +00:00
Marcus Boerger
43ee98f9fa Not needed 2004-01-18 19:17:50 +00:00
Marcus Boerger
0e5b87c5a2 Update copyright 2004-01-08 18:17:39 +00:00
Marcus Boerger
c212ddd5ec Fix a (single) leak
# -> iterators cannot keep current data as zval**, only zval * is possible.
2003-12-10 10:19:43 +00:00
Marcus Boerger
d4a55f1ace Add missing dtor call. 2003-12-09 19:03:38 +00:00
Marcus Boerger
f3a3990ca8 Implement CahingIterator and CachingRecursiveIterator as C-code.
#Script examples/directorytree.php has a few memleaks though but besides
#that all works fine.
2003-12-08 08:39:18 +00:00
Marcus Boerger
7046afb542 Implement SeekableIterator and LimitIterator as C code. 2003-12-06 19:21:02 +00:00
Marcus Boerger
e9f7e14460 Remove debug code 2003-12-02 07:19:31 +00:00
Marcus Boerger
37d7555f98 Add classes from examples: FilterIterator, ParentIterator 2003-12-02 07:18:05 +00:00
Marcus Boerger
bfa36a8ea7 Caanot use REPLACE_ZVAL_VALUE here. 2003-11-29 18:31:24 +00:00
Marcus Boerger
eca139ec52 - rename getLevel() to getDepth()
- make parameter to getSubIterator() optinal
- refcount fix
2003-11-22 20:49:15 +00:00
Marcus Boerger
dc42ce8cf2 - Rename DirectoryTreeIterator to RecursiveDirectoryiterator (what it
effectively is).
- Add DirectoryIterator::__toString ->getFilename
- Add RecursiveDirecetoryIterator::__toString ->getPathname
- Add RecursiveIteratorIterator::getSubIterator.
2003-11-18 22:14:19 +00:00
Marcus Boerger
54352a63ad Fix RecursiveIteratorIterator 2003-11-17 00:57:01 +00:00
Marcus Boerger
ab05faf5b1 Implement different recursion modes as statemachine and have an optional
parameter to choose the mode in the constructor.
2003-11-11 00:25:26 +00:00
Marcus Boerger
159c538bcf Major update:
- Remove all overloading hooks -> array_read/array_access must be rewritten
- Remove all basic iterators
- Remove all 'spl_' prefixing exposed to user level
- Add RecursiveIterator, RecursiveIteratorIterator
- Add DirectoryIterator, DirectoryTreeIterator
- Add some examples
2003-11-09 14:05:36 +00:00