Commit Graph

170 Commits

Author SHA1 Message Date
Marcus Boerger
51044eabd4 - Missed 'proto' 2006-03-06 22:22:07 +00:00
Marcus Boerger
1050956ad1 - Proto fixes 2006-03-06 09:47:03 +00:00
Marcus Boerger
c7adc4a54e - Make the ctor static and not inline 2006-03-04 17:01:16 +00:00
Marcus Boerger
ce20de5e46 - Fix issue with LimitIterator and bounds checking 2006-03-03 23:34:49 +00:00
Marcus Boerger
7bb0ca9ce6 - Fix SEGV with AppendIterator when base class constructor was not called
- Generic check to prevent double call to constructors of SPL iterators
2006-03-03 21:35:16 +00:00
Dmitry Stogov
0f1209ab3d Portable unicode string API:
- use the same type (int) for zval.value.usr.len and zval.value.str.len
  - use union "zstr" as char*/UChar* mixture instead of void*
  - Z_UNISTR() and Z_UNILEN() no longer check for Z_TYPE()
  - nuke int32_t from ZE (not finisned)
2006-02-21 20:12:43 +00:00
Dmitry Stogov
09ca61c125 Made server wide switch for unicode on/off (according to PDM). 2006-02-13 10:23:59 +00:00
Antony Dovgal
96543b01ad initialize variables and reduce the number of warnings 2006-02-06 11:28:20 +00:00
Marcus Boerger
c67d8b2152 - Iterator API was changed 2006-02-05 23:31:47 +00:00
Marcus Boerger
2a2eae219c - Fix error message 2006-01-23 02:26:15 +00:00
Antony Dovgal
4f07cff61c fix typo (and possible segfault) 2006-01-18 23:39:00 +00:00
Dmitry Stogov
227295a4f1 Unicode stuff is changed according to decision maden on PDM.
Now IS_BINRAY data type is removed and IS_STRING starts behave as IS_BINARY in unicode mode. IS_STRING is incompatible with IS_UNICODE, so ALL functions should be improved to support unicode mode.
2006-01-17 12:18:53 +00:00
Antony Dovgal
8f86b6d145 avoid segfaults 2006-01-15 16:05:49 +00:00
Marcus Boerger
e16171a6b1 - MFB 2006-01-01 19:57:27 +00:00
foobar
251c5173fd bump year and license version 2006-01-01 13:10:10 +00:00
foobar
6102ec3a06 - Remove wrong inline usage (and fix bug #35796) 2005-12-25 16:03:38 +00:00
Marcus Boerger
2f2711acfd - MFB Fix leak 2005-12-22 00:38:05 +00:00
Marcus Boerger
b6caa5e369 - MFB Fix memleak 2005-12-22 00:24:49 +00:00
Antony Dovgal
320b5ce461 MFB: more SPL leak fixes 2005-12-20 12:41:38 +00:00
Marcus Boerger
1a7b411f9a - MFH IteratorIterator::__construct() fixes 2005-12-19 00:55:40 +00:00
Antony Dovgal
099ab8ac8d MFB: fix leak in SPL iterators 2005-12-18 22:53:18 +00:00
foobar
5f44819b72 - function_entry -> zend_function_entry (php3 legacy!) 2005-12-06 02:00:07 +00:00
Stanislav Malyshev
1a60646023 MF5.1: fix reallocation bug 2005-12-05 20:08:19 +00:00
Antony Dovgal
e658842761 fix #35197 (Destructor is not called) and similar issues in other extensions 2005-11-14 21:52:27 +00:00
Marcus Boerger
d73184b6ba - The iterator base interface is Traversable not IteratorAggregate 2005-11-01 21:17:51 +00:00
Marcus Boerger
dd702a23dc - Fix stupid unicode warnings 2005-10-29 15:44:37 +00:00
Marcus Boerger
5c4d1edef3 - Add AppendIterator::getIteratorIndex
- Add AppendIterator::getArrayIterator
2005-10-29 15:37:57 +00:00
Dmitry Stogov
2b5cd0e756 Unicode support 2005-10-28 08:07:17 +00:00
Marcus Boerger
722613aeb8 - Use pcre_cache_entry* rather than pcre* directly for refcounting
# This prevents a theoretical crash when using too many regexes
2005-10-12 22:52:09 +00:00
Marcus Boerger
68f663eaf8 - Provide const RegExIterator::USE_KEY and actually use it in the test 2005-10-11 00:18:32 +00:00
Marcus Boerger
ac92e5988c - Add (Recursive)RegExIterator 2005-10-10 23:58:42 +00:00
Marcus Boerger
8b14aded85 - MFB Missing constants 2005-10-05 21:57:45 +00:00
Marcus Boerger
6ccd7ef74d - Update cast_object handlers 2005-10-05 19:12:44 +00:00
Marcus Boerger
086912dfff - Allow to use currnet() and key() in __toString() 2005-10-03 10:08:56 +00:00
Marcus Boerger
7e1763a115 - Implement RecursiveIteratorIterator::setMaxDepth()/getMaxDepth() 2005-09-25 12:01:31 +00:00
Marcus Boerger
02038b4ac4 - Rename 'CachingRecursiveIterator' to 'RecursiveCachingIterator' so that
all of those follow the naming scheme 'Recursive<*>Iterator'
2005-09-18 16:51:24 +00:00
Marcus Boerger
445e382454 - Move RecursiveArrayIterator into .c
- Add ability to control iterator class of ArrayObject
- Implement option to make CachingIterator cache all read elements
- Implement ArrayAccess to CachingIterator to access cached elements
- Update docu
- Update tests
2005-09-18 11:34:36 +00:00
Marcus Boerger
8aa7f36a3b - Rename Observer to SplObserver
- Rename Subject to SplSubject
- Move SPL constants to class constants
- Update docu
2005-09-15 03:31:37 +00:00
Dmitry Stogov
6b622046dc zend_is_callable() and zend_make_callable() were changed to return readable function name as zval (instead of string). 2005-08-22 12:22:16 +00:00
Marcus Boerger
a24a21ecf0 - No c comment (+ old non unicode way not needed any longer) 2005-08-15 19:16:30 +00:00
Dmitry Stogov
909e0a1c4e Unicode support 2005-08-15 17:29:07 +00:00
Antony Dovgal
d09b1b1e89 shut up warnings 2005-08-12 20:58:28 +00:00
Sebastian Bergmann
52b001cc05 ZTS fixes. 2005-08-12 14:08:28 +00:00
Dmitry Stogov
e1627558ed Unicode support 2005-08-12 13:09:58 +00:00
Dmitry Stogov
21c1109e0c Unicode support 2005-08-12 11:29:33 +00:00
Andrei Zmievski
264cec8be6 Unicode support. 2005-08-11 23:36:07 +00:00
Marcus Boerger
9e38d04a7c - Add RecursiveFilterIterator
- Derive ParentIterator from RecursiveIterator
# Actually brought up by a user. It is of course better to filter first and
# do the recursion only for accepted values. Otherwise you would iterate
# children and possibly recurse into them just to ignore them later anyway.
2005-08-10 19:48:48 +00:00
foobar
23e671a51e - Bumber up year 2005-08-03 14:08:58 +00:00
Marcus Boerger
0b34e041e3 - Before we later run into BC trouble we split flags into two params mode
and flags now before branching for 5.1.
2005-07-28 21:09:02 +00:00
Marcus Boerger
a935b06236 - Fix issues with iterators and excpetions
# update documentation
#
# In 5.2 we need to implement an event handler onException() to be invoked
# on exceptions during getChildren() calls. Its default implementation
# would simply rethrow the exception if the flag is not set and delete if
# if it was set. To do so the exceptions refcount needs to be increased
# before calling zend_clear_exception() to keep the exception alive but
# clear the control information.
#
# As a side note this is alos the easy solution to allow multi exception
# handling: Simply clear the engine's exception info and add a property
# called $previousException to the base exception and assign it from the
# already pending one.
2005-07-27 22:19:01 +00:00
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