Commit Graph

188 Commits

Author SHA1 Message Date
Dmitry Stogov
c1e5b1345d Fixed bug #45742 (Wrong class array inpretetion using constant indexes) 2008-08-07 11:45:35 +00:00
Dmitry Stogov
37a769353f Fixed bug #44100 (Inconsistent handling of static array declarations with duplicate keys). 2008-08-01 14:22:03 +00:00
Felipe Pena
0fbe6a0c14 - MFH: Added TSRMLS_DC to apply_func_args_t and zend_hash_apply_with_arguments. 2008-07-24 19:52:24 +00:00
Sebastian Bergmann
d1dded8751 MFH: Bump copyright year, 2 of 2. 2007-12-31 07:17:19 +00:00
Dmitry Stogov
6c810b0d4c Improved memory usage by movig constants to read only memory. (Dmitry, Pierre) 2007-09-27 18:00:48 +00:00
Dmitry Stogov
4035a8ebc0 Fixed bug #41372 (Internal pointer of source array resets during array copying)
Fixed bug #37715 (array pointers resetting on copy)
2007-07-24 18:28:39 +00:00
Dmitry Stogov
149dd625be Special case for last iteration 2007-02-21 14:11:00 +00:00
Antony Dovgal
d2c5721f41 MFH: catch overflow right away 2007-01-20 23:10:02 +00:00
Dmitry Stogov
e470e22e20 - Fixed bug #35106 (nested foreach fails when array variable has a reference).
- Fixed bug #36214 (__get method works properly only when conditional operator is used).
- Fixed bug #39449 (Overloaded array properties do not work correctly).
- Fixed bug #39990 (Cannot "foreach" over overloaded properties).
2007-01-10 15:58:08 +00:00
Sebastian Bergmann
4223aa4d5e MFH: Bump year. 2007-01-01 09:36:18 +00:00
Dmitry Stogov
cc895444b1 HashTable copying optimization (Matt Wilmas) 2006-11-08 16:02:03 +00:00
Marcus Boerger
da8b00a5e4 - MFH: Fixed bug #39320 2006-11-03 19:02:16 +00:00
Dmitry Stogov
c42b3bf689 Fixed bug #38315 (Constructing in the destructor causes weird behaviour) 2006-08-24 09:42:35 +00:00
Dmitry Stogov
6624682dff MFH:
- Allowed storing NULL pointers in HashTable
- Optimized zend_hash_reverse_apply()
2006-04-07 10:06:21 +00:00
Antony Dovgal
a3b941642c init variables 2006-02-06 20:37:11 +00:00
Zeev Suraski
b73349dbe4 Fix possibility of a wrong element being deleted by zend_hash_del()
Thanks Stefan!
2006-02-01 01:01:05 +00:00
Andi Gutmans
61e93ccfe8 - Update copyright notices to 2006 2006-01-04 23:53:05 +00:00
foobar
916815b779 Bump up the year 2005-08-03 13:30:58 +00:00
Dmitry Stogov
d9c1a380ad Fixed bug #28072 (static array with some constant keys will be incorrectly ordered). 2005-07-07 15:16:57 +00:00
Antony Dovgal
a32c1f9eee fix bug #33382 (array_reverse() fails after *sort())
no need to MFH - the bug existed only in HEAD
2005-06-17 10:50:15 +00:00
foobar
9a020fce63 ws 2005-04-25 08:21:15 +00:00
Dmitry Stogov
c78ec1615a Fixed call to estrndup() with invalid length 2005-04-25 06:13:57 +00:00
Marcus Boerger
dcf007c6da - Increase performance of *sort() and some internal sort operations.
# This patch increases the performance of small arrays/hashes by up to ~15%
# The performance increase during the performance talk :-)
2004-07-29 19:18:46 +00:00
Andi Gutmans
e5cfb1d05c - Better stability during premature shutdown of request startup 2004-07-10 07:46:17 +00:00
foobar
ccfc46b0aa - Happy new year and PHP 5 for rest of the files too..
# Should the LICENSE and Zend/LICENSE dates be updated too?
2004-01-08 17:33:29 +00:00
Sascha Schumann
dcfb7638bc improve a number of zend_debug format strings 2003-08-29 07:34:37 +00:00
Zeev Suraski
0dba58c373 Improve tracking 2003-08-18 21:17:26 +00:00
Zeev Suraski
d2971e506c Remove bogus patch - the number of elements is unrelated 2003-08-12 06:21:02 +00:00
Marcus Boerger
f77f977d0e Bugfix 21918 2003-08-11 20:14:25 +00:00
Andi Gutmans
7055fda013 - Fix logic. It was the wrong way around. 2003-07-31 05:08:59 +00:00
Andi Gutmans
8264eedc48 - Fix problem with hash when updating same bucket with data of different
sizes one after another.
- Fix number of arguments to read_dimension.
2003-07-30 19:47:39 +00:00
Zeev Suraski
e89977f9d9 Go back to ZE1-like code 2003-07-23 08:56:34 +00:00
Zeev Suraski
cf90932a05 Improve infrastructure of numeric handling of elements in symbol tables.
When you want to work with a symbol table, and you don't know whether you
have a numeric ("string that looks like a number") or a string element in
your hands, use zend_symtable_*() functions, in place of zend_hash_*()
functions.
2003-07-22 16:06:07 +00:00
Marcus Boerger
184118d9a9 Make it a macro 2003-07-20 12:23:46 +00:00
Marcus Boerger
9556c6c27e This is meant to be used in for(;has_more;next)
# Probably the name of such functions should be eol (End-Of-List).
2003-07-19 20:04:51 +00:00
Marcus Boerger
892c1fbbe7 Add missing function to ease implementations 2003-07-19 14:19:04 +00:00
Marcus Boerger
4eb6392519 ecalloc doesn't return NULL 2003-06-14 11:32:30 +00:00
James Cox
f68c7ff249 updating license information in the headers. 2003-06-10 20:04:29 +00:00
Sterling Hughes
ae9106521a move HANDLE_NUMERIC() from the hash table implementation upstream to the
places that actually need to use it.
2003-05-23 15:11:15 +00:00
Zeev Suraski
45c12359a9 Fix prototype (may have caused stack corruption) 2003-02-06 00:14:49 +00:00
Zeev Suraski
376d63170b Add quick_exists() 2003-02-05 13:19:59 +00:00
Zeev Suraski
471947b188 Reimplement PPP properties 2003-02-04 12:12:34 +00:00
foobar
333406bdc2 - Added some missing CVS $Id$ tags, headers and footers. 2003-02-01 01:49:15 +00:00
Sebastian Bergmann
2c5d4b8c23 Bump year. 2002-12-31 15:59:15 +00:00
Andi Gutmans
55e127a6d5 - Commit fix for bug #19566 (I think it's by Marcus :) 2002-11-15 14:25:44 +00:00
Ilia Alshanetsky
c6d60713cb Revert of previous patch. 2002-11-05 18:22:02 +00:00
Ilia Alshanetsky
0506fa5e6a If ordered is not set a random compiler assigned value of *p2 would be used,
this patch fixes the problem by initializing *p2 to NULL.
2002-11-04 17:26:44 +00:00
Zeev Suraski
91b0d03346 Add tracking for hashtable allocation 2002-09-17 14:04:37 +00:00
Zeev Suraski
88fd5f3f5d MFZE1 2002-08-17 16:07:26 +00:00
Harald Radi
99c90db11a make win32 debug output more verbose 2002-08-07 14:47:42 +00:00
Stanislav Malyshev
0e7c1f4609 MFZE1 2002-08-01 16:07:19 +00:00
Andi Gutmans
b291dfad3d - Fix WS. 2002-07-23 19:29:02 +00:00
Harald Radi
51e797f1e3 some type cleanup work 2002-04-23 18:06:54 +00:00
Sebastian Bergmann
bf5bb84277 MFZE1: make sure the resource-list is always consistent during shutdown (Thies). 2002-04-19 16:53:36 +00:00
Sebastian Bergmann
2697ce689d MFZE1: Fix imbalance bug (Zeev). 2002-04-19 16:43:27 +00:00
Sebastian Bergmann
62dc854bb0 Happy New Year. 2002-01-06 15:21:36 +00:00
Sebastian Bergmann
d863d52a5d Update headers. 2001-12-11 15:16:21 +00:00
Sebastian Bergmann
43c7615c51 MFZE1 2001-10-04 14:18:52 +00:00
Sebastian Bergmann
3bdddb4910 MFZE1 2001-09-19 10:25:04 +00:00
Zeev Suraski
9b3df86e8d MFZE1 2001-08-20 14:58:52 +00:00
Zeev Suraski
4f6c95d17a Whitespace 2001-08-11 15:56:40 +00:00
Zeev Suraski
c14baeece3 Avoid going over huge lists of functions, classes and constants.
Special thanks to the guys from the MS lab for the profiling tools :)
2001-08-02 07:00:43 +00:00
Zeev Suraski
7deb44e36d Some cleanup 2001-08-02 06:16:20 +00:00
Zeev Suraski
3aa5674a84 TSRMLS fixes 2001-08-02 05:25:29 +00:00
Zeev Suraski
d76cf1da18 More TSRMLS_FETCH work 2001-07-31 04:53:54 +00:00
Zeev Suraski
8ce8324e59 More TSRMLS_FETCH annihilation 2001-07-30 04:54:16 +00:00
Zeev Suraski
660a09c6da Fix compile warning 2001-07-21 14:18:53 +00:00
Andi Gutmans
6bd084cb0a - Remove unused code 2001-07-17 16:10:15 +00:00
Zeev Suraski
563aacdb66 Fix bug #6239 2001-07-15 18:57:43 +00:00
Zeev Suraski
f63367bf16 layout 2001-07-13 12:08:32 +00:00
Thies C. Arntzen
7b7e72d1d2 the resource-lists are now destroyed backwards. this will make sure that
resources get destroyed in the opposite order they were created and thereby
db-cursors will always be released before their corresponding connection etc.
this sould not break anything!
2001-07-13 12:05:47 +00:00
Andi Gutmans
b98acd61f1 - Move inline_zend_hash_func() to header file 2001-07-11 16:16:08 +00:00
Andi Gutmans
2f8fa8cf21 - Merge faster hash implementation.
- The hash function parameter in hash_init(...) is not used anymore.
- It should be removed but it is "to be decided" if we want to do that now
- or in a major version as it means changing MANY places and third party
- modules might stop working.
2001-07-10 20:31:42 +00:00
Sascha Schumann
ba8af2515e Fix segfault when using zend_hash_add_empty_element 2001-05-19 14:53:55 +00:00
Zeev Suraski
755207a1e6 Implement zend_hash_add_empty_element() using the existing infrastructure 2001-05-16 17:22:01 +00:00
Sascha Schumann
bb472e7069 Initialize empty pDataPtr to a pseudo value to prevent a pefree on
pData.
2001-05-14 10:49:17 +00:00
Sascha Schumann
3efa08aaa8 Some extensions don't associate any data with hash entries,
except the key.  Prior to this change, a separate chunk of memory
was allocated in that case to store exactly zero bytes (plus
memory manager overhead).  We treat that case similar to the
pointer case, but don't copy any data at all (because the pointer
is usually the NULL pointer).
2001-05-11 19:32:01 +00:00
Zeev Suraski
4e71bbed0a include limits.h if available 2001-04-28 20:21:42 +00:00
Andi Gutmans
acd56b0891 - More whitespace fixes while I'm at it. 2001-04-27 18:53:25 +00:00
Andi Gutmans
d2c9e8074c - Update copyright year 2001-02-26 05:43:27 +00:00
Zeev Suraski
36eaad252f Allow get_current_key() not to return the key itself, instead of a duplicate 2000-12-22 12:49:51 +00:00
Zeev Suraski
0fcce4a77a @* Fixed a possible crash in get_class_methods() (Zeev) 2000-12-22 12:08:04 +00:00
Sascha Schumann
fb87cc8c8e INIT_DATA/UPDATE_DATA assumed that pData elements of the size of a void
pointer would actually be aligned like a void pointer. This lead
to bus errors on architectures which don't allow unaligned 32-bit accesses.
2000-12-06 21:24:10 +00:00
Andi Gutmans
e9887156cf Don't use 'new' symbol 2000-10-11 19:11:48 +00:00
Zeev Suraski
9aa38aad45 Add zend_hash_merge_ex(), for selective merging 2000-10-11 16:22:40 +00:00
Andi Gutmans
c4fd954b8a - Another has optimization/fix like the hash_copy one from earlier on 2000-09-28 23:21:08 +00:00
Stanislav Malyshev
56c474cf48 Make hash_copy call copy constructor on a real copy, not on a temp 2000-09-28 15:17:50 +00:00
Zeev Suraski
a650dd8a19 This is probably the oldest bug in PHP :)
Luckily it's unlikely we're ever actually bitten by this bug.
2000-07-18 20:08:06 +00:00
Zeev Suraski
1263932a0d Disable the hash_apply() protection on hashes that persist across requests - it's unsafe
because we may be aborted at any point
2000-07-11 14:27:31 +00:00
Zeev Suraski
38cdb8e7b7 Avoid crashing with recursive applies - limit apply nest level to 3 (I'm not aware of a place
in which applying recursively on the same hash makes sense with more than one nest level, but
3 should be enough)
2000-06-17 14:11:57 +00:00
Zeev Suraski
bfac4633a5 - Support unordered hash comparisons
- Make == perform an unordered comparison with arrays/objects, and === perform an ordered comparison
2000-06-04 21:59:49 +00:00
Zeev Suraski
dae76aa1b5 Support comparisons of arrays (with arrays) and objects (with objects) 2000-06-03 10:34:19 +00:00
Zeev Suraski
0b7a9cea88 - Fix Win32 compilation (Use winsock2.h from now on)
- Add lambda() support
2000-06-03 01:49:49 +00:00
Zeev Suraski
8ca13c97c2 Change zend_hash_get_current_key_ex() to also return the string length 2000-05-02 17:52:31 +00:00
Andi Gutmans
6db18997bb - Nuke hash_*_ptr functions 2000-03-24 11:12:30 +00:00
Andrei Zmievski
ee286febe7 Make zend_hash_move_forward()/zenv_hash_move_backwards() a little smarter. 2000-03-15 16:25:59 +00:00
Andrei Zmievski
a32c54bdbb Introduced a way to traverse hashes through external pointers. 2000-03-13 15:25:18 +00:00
Zeev Suraski
5e55e47f7f It's official now... 2000-03-06 05:26:39 +00:00
Zeev Suraski
0ac9536d99 (c) patch 2000-02-19 22:46:42 +00:00
Zeev Suraski
ceba50b6ed - Fix a nasty bug in the hash, introduced in the recent migration to macros
- Make array_init() and friends trackable
2000-02-19 19:21:45 +00:00