Dmitry Stogov
21da8af578
Removed the old hack that was originally developed to support constants in array indeces, and isn't needed anymore after the Bob's patch.
2014-05-19 01:20:56 +04:00
Dmitry Stogov
d07c1941ec
Use new hash iteration API and avoid old zend_hash_update_current_key() hack
2014-05-19 00:50:00 +04:00
Tjerk Meesters
e7b50a8ee9
Convert to unpacked before deleting elements
...
Return FAILURE immediately if a string index removal is attempted.
Moved condition higher up
2014-05-13 11:58:28 +08:00
Nikita Popov
b30c7fe263
Port JSON
2014-05-05 01:00:59 +02:00
Nikita Popov
69b5ee61d0
Fixed bug #67169 : []= after_array_splice incorrect
...
This fixes a regression I introduced in beta 1.
2014-05-02 12:49:51 +02:00
Dmitry Stogov
b1ff152782
Reimplement strtr()
2014-04-24 19:14:29 +04:00
Nikita Popov
c98d373eb6
Fix strict array comparison
...
Fixes Symfony test failures
2014-04-23 20:34:45 +02:00
Dmitry Stogov
72c287bd23
Combine HashTable.flags and HashTable.nApplyCount into single 32-bit word
2014-04-21 18:25:34 +04:00
Dmitry Stogov
050d7e38ad
Cleanup (1-st round)
2014-04-15 15:40:40 +04:00
Nikita Popov
ad2ef3d97e
Add only_integer_keys option to zend_hash_reindex
...
This allows to either do a full reindex, or only reindex the integer
keys.
2014-04-09 12:31:21 +02:00
Nikita Popov
22d3eb3117
Add zend_hash_splice
...
This implements the original functionality of php_splice, but
as an in-place operation, thus avoiding copying the HT.
This is much faster (~10x) if the splice removes a small portion
of the array and doesn't insert many elements.
2014-04-09 12:31:21 +02:00
Nikita Popov
1aa8719e32
Add zend_hash_reindex
...
The implementation differs from the original in array.c in that it
rehashes the hashtable in the same loop. This is approximately two
times faster (not counting the rare case of a purely associative
array).
2014-04-09 12:31:21 +02:00
Dmitry Stogov
3d17219cd8
Refactored zend_hash_* iteration API zend_hash_fove_forward_ex(ht, pos) and family require second argument to be real pointer.
...
&(ht)->nInternalPointer should be passed instead of NULL.
zend_hash_update_current_key() may work only with internal pointer.
2014-04-07 23:14:17 +04:00
Dmitry Stogov
3167b49ce9
Allocate HashTable->arData and HashTable->arHash at once
2014-04-07 18:22:03 +04:00
Dmitry Stogov
3485b11499
"incremental" hash bucket initialization
2014-04-07 13:31:44 +04:00
Dmitry Stogov
76cc99fe60
Refactored ZVAL flags usage to simplify various checks (e.g. Z_REFCOUNTED(), candidate for GC, etc)
2014-04-03 15:26:23 +04:00
Dmitry Stogov
d8099d0468
Changed data layout to allow more efficient operations
2014-04-02 14:34:44 +04:00
Dmitry Stogov
60961bba3d
Avoid useless memset()
2014-04-01 23:56:45 +04:00
Dmitry Stogov
042c937f69
Use STR_COPY() instead of STR_DUP() where possible
2014-04-01 17:10:15 +04:00
Dmitry Stogov
887189ca31
Refactored IS_INDIRECT usage for CV and object properties to support HashTable resizing
2014-03-26 18:07:31 +04:00
Anatol Belski
9d4001f1c8
fix C89 compat
2014-03-22 10:44:01 +01:00
Nikita Popov
f331ed1414
Revert "Add helper function for updating bucket contents"
...
Reverting this for now, because it would require further changes
thanks to the zend signals tsrms-but-only-sometimes awesomeness.
2014-03-21 01:32:49 +01:00
Nikita Popov
4e7e301dda
Rename+move zend_hash_apply_deleter and reuse it
...
The interruption handling was normalized to wrap the entire deletion
operation (instead of leaving out the destructor call and/or the
deallocation) per the recommendation of somebody (don't remember who)
familiar with zend signals.
There is an always-inlined variant of the function for use in
the main deletion function, to ensure there is no performance
impact.
2014-03-21 00:14:52 +01:00
Nikita Popov
4efa58dd59
Make zend_hash_apply_deleter() void, to allow reuse
...
Also remove lies in the comment above the function. apply_deleter
is not safe against modification, if the modification involves
removing the next bucket.
Also modified the implementation of zend_hash_graceful_destroy()
to be fully graceful (the reverse variant already was).
2014-03-21 00:14:51 +01:00
Nikita Popov
c3a317117a
Add helper function for updating bucket contents
2014-03-21 00:14:46 +01:00
Nikita Popov
994fcfcff9
Remove unnecessary check
...
In case of an update the key already existed, so the next free
element can not change.
2014-03-20 22:58:10 +01:00
Dmitry Stogov
62c448ab8b
Fixed serialize/unserialize problems
2014-03-17 17:23:27 +04:00
Dmitry Stogov
51494f252f
Don't include trailing zero into hash caclculation
2014-03-14 15:35:57 +04:00
Dmitry Stogov
3e4c22b499
Fixed possible HashTable modification in its destructor
2014-03-06 16:53:13 +04:00
Dmitry Stogov
e0f6bae56b
Passing symbol_table into user error handlers
2014-03-04 14:17:17 +04:00
Xinchen Hui
a52659bc25
zend_hash_del didn't check the PACKED flag
2014-02-19 19:27:42 +08:00
Dmitry Stogov
5de7115679
Use better data structures (incomplete; able to run bench.php)
2014-02-18 16:27:38 +04:00
Dmitry Stogov
be82a07776
Use better data structures (incomplete)
2014-02-12 18:08:11 +04:00
Dmitry Stogov
f4cfaf36e2
Use better data structures (incomplete)
2014-02-10 10:04:30 +04:00
Xinchen Hui
c081ce628f
Bump year
2014-01-03 11:08:10 +08:00
Xinchen Hui
47c9027772
Bump year
2014-01-03 11:06:16 +08:00
Dmitry Stogov
6c2a806820
Avoid interned hash key duplication and hash key length recaclulation
2013-11-29 00:57:49 +04:00
Dmitry Stogov
5d25762646
Removed unused "pHashFunction" argument in _zend_hash_init() and family (must be 99% source compatible)
2013-11-28 18:40:46 +04:00
Dmitry Stogov
b63b81815f
Some rare deprecated cases replaced by ZEND_ASSERT() (some extensions might need to be fixed)
2013-11-28 17:02:01 +04:00
Dmitry Stogov
aa427a10d4
Removed duplicated hash function implementation (100% source compatible)
2013-11-28 17:01:10 +04:00
Stanislav Malyshev
02457554a3
Merge branch 'PHP-5.5'
...
* PHP-5.5:
backward compatibility
HASH_KEY_NON_EXISTANT fix
2013-07-21 20:10:31 -07:00
Veres Lajos
4749457a49
HASH_KEY_NON_EXISTANT fix
2013-07-21 20:09:53 -07:00
Nikita Popov
42729c1baf
Merge branch 'PHP-5.5'
2013-06-17 23:49:08 +02:00
Nikita Popov
86434be946
Fix bug #65051 : count() off by one inside unset()
...
nNumOfElements was incremented after the pDestructor code, so any
code in the dtor would get a wrong number of elements.
Right now the bucket deletion code is replicated in four places,
it should probably be moved off into one function (or rather,
zend_hash_apply_deleter should be used everywhere). The codes are
subtly different though in that the HANDLE_UNBLOCK_INTERRUPTIONS()
happens in different places. In particular it seems odd that in
some cases interruptions stay blocked during the destructor call.
2013-06-17 23:44:13 +02:00
Nikita Popov
ae91084067
Remove unnecessary NULL checks from zend_hash
...
Our memory allocation functions (including the persistent ones)
are infallible, so no need to check for NULL.
2013-06-17 18:51:59 +02:00
Nikita Popov
1f34ccbe34
Fix bug #64555 : foreach no longer copies keys if they are interned
2013-04-03 20:29:19 +02:00
Nikita Popov
fcc6611de9
Add support for non-scalar Iterator keys in foreach
...
RFC: https://wiki.php.net/rfc/foreach-non-scalar-keys
2013-03-12 17:27:31 +01:00
Xinchen Hui
a666285bc2
Happy New Year
2013-01-01 16:37:09 +08:00
Felipe Pena
8775a37559
- Year++
2012-01-01 13:15:04 +00:00
Dmitry Stogov
dc18f8427c
Fixed icorrect key length after updating constant index
2011-12-01 13:58:29 +00:00
Dmitry Stogov
e43ff1359e
Fixed ZE specific compile warnings (Bug #55629 )
2011-09-13 13:29:35 +00:00
Pierre Joye
710d46f38e
- WS
2011-09-06 06:34:36 +00:00
Pierrick Charron
7f203d4385
Fix typo
2011-08-08 11:30:56 +00:00
Rasmus Lerdorf
1ac9192d46
Fix missing va_end() found by Coverity
2011-08-05 22:18:42 +00:00
Dmitry Stogov
8ff0701e8d
Fixed bug #50816 (Using class constants in array definition fails).
2011-08-01 11:21:23 +00:00
Felipe Pena
5ca0f69921
- Fix ZTS build
2011-06-02 22:54:14 +00:00
Ilia Alshanetsky
939875133a
Zend Signal Handling (see RFC: https://wiki.php.net/rfc/zendsignals )
...
This needs to go into 5.4 as well, but will wait for Pierre to review win32 situation
# Patch by Lucas Nealan, Arnaud Le Blanc, Brian Shire & Ilia Alshanetsky
2011-06-02 21:16:50 +00:00
Dmitry Stogov
50ce16deff
Fixed bug #54268 (Double free when destroy_zend_class fails)
2011-04-15 12:43:20 +00:00
Dmitry Stogov
8fe3ea75cb
Changed initialization order to workaround against crashes after memory overflow
2011-04-15 09:59:42 +00:00
Felipe Pena
0203cc3d44
- Year++
2011-01-01 02:17:06 +00:00
Johannes Schlüter
1e1e70dc55
- Don't be silent on bailout
2010-09-14 14:26:37 +00:00
Dmitry Stogov
25d6aee4fb
Removed redundant check
2010-07-07 11:44:27 +00:00
Felipe Pena
e232da026b
- Replaced 'zend_hash_find' to 'zend_hash_quick_find' on zend_hash_compare() function
2010-05-03 16:36:04 +00:00
Dmitry Stogov
dd5c478be6
Added concept of interned strings. All strings constants known at compile time are allocated in a single copy and never changed.
2010-04-20 11:05:54 +00:00
Dmitry Stogov
ea53dc5af6
Added an optimization which saves memory and emalloc/efree calls for empty HashTables
2010-04-20 10:49:22 +00:00
Sebastian Bergmann
d2281d1dff
sed -i "s#1998-2009#1998-2010#g" **/*.c **/*.h **/*.php
2010-01-05 20:46:53 +00:00
Matt Wilmas
dca18b68d1
MFH: Fixed bug #47836 (array operator [] inconsistency when the array has PHP_INT_MAX index value)
...
Also simplified related array_push() test
2009-06-07 19:28:15 +00:00
Sebastian Bergmann
08659c2dcd
MFH: Bump copyright year, 3 of 3.
2008-12-31 11:15:49 +00:00
Felipe Pena
cf7384aa40
- MFH: Constness (Added const qualifier to several function parameters)
2008-08-12 17:20:25 +00:00
Antony Dovgal
3c018ceb75
fix WS
2008-08-07 11:51:54 +00:00
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
Andi Gutmans
e578fad099
- Save a function call one very hash_add
2000-02-13 13:31:29 +00:00
Andi Gutmans
bb302a755c
- Make startup a bit faster by changing some hash_update()'s and hash_add()'s
...
to hash_update_ptr()/hash_add_ptr()
2000-02-13 13:22:02 +00:00
Andi Gutmans
920b7b2841
- Fix a couple of potential bugs where we were using emalloc/efree instead
...
of pemalloc/pefree.
- Fix a bug were we potentially would be freeing the key by mistake
2000-02-13 12:45:36 +00:00
Andrei Zmievski
94be61fde5
Made a couple of typedefs for zend_hash_apply_*() calls.
2000-02-11 21:12:49 +00:00
Zeev Suraski
9f51f154aa
- Stop passing list/plist to internal functions
...
- Add a typedef for the pCopyConstructor function pointer
- Minor hacks
2000-02-05 15:11:24 +00:00
Thies C. Arntzen
d6afe4bac7
took out zend_hash_pointer_update() & zend_hash_pointer_index_update_or_next_insert() - i really prefer link-errors instead of runtime-errors, don't you?
2000-02-01 10:40:05 +00:00
Zeev Suraski
c3677ca907
Add some order...
2000-01-20 14:26:31 +00:00
Zeev Suraski
92633067af
Indentation fixes
2000-01-20 05:27:57 +00:00
Andi Gutmans
af2ef0830a
- Optimize zend_hash_del a tiny bit.
2000-01-19 19:47:16 +00:00
Andi Gutmans
aa73f6b68f
- Hopefully fix the hash problem.
2000-01-19 19:44:32 +00:00
Andi Gutmans
7271c050a3
- Hrm I'm not concentrating
2000-01-19 18:14:20 +00:00
Andi Gutmans
99783fe795
- Actually the destructor should run after the data is already detached
...
from the hash but before the bucket is freed.
2000-01-19 18:12:05 +00:00
Andi Gutmans
d3690efffe
- Rollback hash_apply and friends. They assume now that hash_del is reentrant
...
as it first applies the destructor and only later nukes the bucket
2000-01-19 18:05:16 +00:00
Andi Gutmans
b7b97df93f
- Run destructor before the hash structure is modified, thus, making
...
hash_del, reentrant (BLOCK_INTERRUPTIONS needs to be made a counter now).
2000-01-19 17:39:55 +00:00
Andi Gutmans
58fb1a3922
- Undo a bug we introduced. (Another one out there).
2000-01-19 17:31:33 +00:00
Thies C. Arntzen
bbe2172c38
use defines
2000-01-17 19:17:58 +00:00
Zeev Suraski
19d978d1c7
Get rid of the IsPointer functionality in the hash.
2000-01-17 18:45:46 +00:00
Zeev Suraski
a965dc5b40
- Fixes a newly introduced bug in the hash
2000-01-17 18:09:03 +00:00
Zeev Suraski
62114c1806
Destructors no longer return ints, the low level problem it was intended to solve is long gone now...
2000-01-17 17:33:37 +00:00
Zeev Suraski
ee08b81aab
- Make zend_hash_apply() (and friends) reentrant and much, much quicker
...
- Introduce zend_hash_graceful_destroy(), which allows the destructor functions to
use zend_hash_apply() and/or zend_hash_graceful_destroy()
- Switch to zend_hash_graceful_destroy() in the resource list shutdowns
2000-01-16 20:59:03 +00:00
Thies C. Arntzen
bd375505f7
make the ht->inconsistent stuff less ugly:)
2000-01-16 09:45:10 +00:00
Thies C. Arntzen
c93a189028
if ZEND_DEBUG mode is on we'll now see warnings when a HashTable is accessed
...
while it's inconsistent.
Zeev, Andi - you welcome to revert this patch if you don't like it - i find it
useful! accesssing inconsistent hashtables is one of the hardest things to track!
2000-01-15 13:40:17 +00:00
Andrei Zmievski
3964c92f8b
Made zend_hash_rehash() callable from outside.
1999-11-04 21:02:35 +00:00
Andrei Zmievski
e956a266e2
*** empty log message ***
1999-10-15 20:37:53 +00:00
Andrei Zmievski
8864313c48
Modified zend_hash() to accept a pointer to sort function.
1999-10-11 21:30:23 +00:00
Stig S. Bakken
009025e00d
* header file cleanup
...
* fixed --enable-thread-safety build for UNIX
I don't have a Win32 environment available, could someone please try
compiling on Win32 to see if I got all the header file stuff right there?
1999-09-06 16:14:08 +00:00
Andi Gutmans
746ce67b66
- Add hash_apply_with_arguments()
1999-08-25 19:02:13 +00:00
Andi Gutmans
741ca16711
- Fixed various inheritance problems & Andrey's leak
1999-07-28 17:59:55 +00:00
Zeev Suraski
8d1de13aef
0.91 update
1999-07-19 20:02:12 +00:00
Zeev Suraski
b5b1117760
License update
1999-07-16 14:58:16 +00:00