Xinchen Hui
7062465be0
Merge branch 'PHP-5.5' into PHP-5.6
2015-02-12 10:59:59 +08:00
Xinchen Hui
f2940b7120
Fixed bug #69017 (Fail to push to the empty array with the constant value defined in class scope)
2015-02-12 10:59:28 +08:00
Xinchen Hui
fc33f52d8c
bump year
2015-01-15 23:27:30 +08:00
Xinchen Hui
0579e8278d
bump year
2015-01-15 23:26:37 +08:00
Xinchen Hui
73c1be2653
Bump year
2015-01-15 23:26:03 +08:00
Dmitry Stogov
34723d1b75
Fixed malloc/emalloc mess
2015-01-15 18:05:58 +03:00
Dmitry Stogov
989daeb5bb
Initialize ht->nTableMask
2015-01-15 15:21:38 +03:00
Xinchen Hui
8a0bc38535
Merge branch 'zend_sort' of https://github.com/laruence/php-src
2015-01-14 22:15:41 -05:00
Anatol Belski
8e3764e287
fixed zend_hash_init() when the lzcnt instruction isn't supported
2015-01-14 12:32:23 +01:00
Xinchen Hui
2193de0d18
Faster sorting algo
2015-01-14 18:02:41 +08:00
Stanislav Malyshev
b7a7b1a624
trailing whitespace removal
2015-01-10 15:07:38 -08:00
Dmitry Stogov
37466b0368
Use special flag (HASH_FLAG_INITIALIZED) instead of (nTableMask == 0) to indicate that HashTable is allocated.
...
Make nTableMask to be 0 for packed arrays.
Remove checks fo HASH_FLAG_PACKED in zend_hash_find/zend_hash_del and family (string keys are resolved through uninitialized_bucket).
Change HashTable layout for better locality.
2014-12-27 11:07:12 +03:00
Nikita Popov
2d212b426a
Drop duplicate arg from hash_get_current_key_ex
2014-12-26 21:06:18 +01:00
Nikita Popov
3d12fc796b
Small cleanups in hash implementation
...
* Drop unnecessary checks in non-inlined part of numeric key
detection
* Drop zend_hash_apply_deleter in favor of zend_hash_del_el.
Also move block/unblock interruption macros in there.
2014-12-26 21:06:18 +01:00
K.
c462ff7ac2
zend_hash_do_resize: fix compacting condition
...
nNumUsed should always be greater or equal to nNumOfElements so original condition is never true and arrays are always doubled in size and compaction is never triggered
2014-12-23 15:32:15 +01:00
Anatol Belski
e60b7207db
cleanup
2014-12-23 13:00:29 +01:00
Dmitry Stogov
441270db2c
Simplify condition
2014-12-19 13:06:34 +03:00
Anatol Belski
bdeb220f48
first shot remove TSRMLS_* things
2014-12-13 23:06:14 +01:00
Dmitry Stogov
3727e26456
Improved zend_hash_clean() and added new optimized zend_symtable_clean()
2014-11-25 14:17:21 +03:00
Dmitry Stogov
ab7b38e336
Added new optimized zend_array_destroy() function
2014-11-25 12:58:29 +03:00
Anatol Belski
6b3b4fc944
joined identical conditional blocks
2014-11-18 13:19:46 +01:00
Anatol Belski
b9f1daa976
basic clang compatibility on windows
2014-11-07 10:17:59 +01:00
Dmitry Stogov
4f3763e202
Micro optimizations
2014-11-06 17:45:41 +03:00
Anatol Belski
e70dce7d99
fix datatype mismatch
2014-10-23 10:29:57 +02:00
Anatol Belski
53797ec1c9
move the more common case up
2014-10-23 10:29:56 +02:00
Dmitry Stogov
8793aa407e
Optimized HashTable size calculation
2014-10-23 00:26:32 +04:00
Anatol Belski
d5ccf4d276
eliminate one branch when computing the initial table size
2014-10-22 19:23:29 +02:00
Anatol Belski
f59daf2104
micro optimized initial hash size calculation
...
most of the calls are with a size <= 8, so don't even bother any
bitshifts. For the bigger sizes, use an intrinsic (should be extended
with gcc ones though).
2014-10-22 17:56:24 +02:00
Dmitry Stogov
2a1250fa57
Micro optimization for zend_hash_next_index_insert_new()
2014-10-16 19:19:10 +04:00
Dmitry Stogov
bccc653185
Avoid double IS_INTERNED() check
2014-09-19 17:32:50 +04:00
Dmitry Stogov
1e0e1b4a73
Split big _zend_handle_numeric_str() into small always inlined function that makes initial check and regular big function
2014-09-18 18:50:05 +04:00
Dmitry Stogov
c2decc6afc
optimized colision list traverse
2014-09-17 00:52:03 +04:00
Nikita Popov
311a67a2ed
Remove HASH_NEXT_INSERT flag
...
We already pass ht->nNextFreeElement and the rest is handled by
ZEND_HASH_ADD.
2014-09-16 18:29:00 +02:00
Nikita Popov
0bf55b65d4
Remove two more always-true conditions
2014-09-16 18:28:59 +02:00
Dmitry Stogov
6991780793
Optimized FE_RESET and FE_FETCH
2014-09-16 01:34:27 +04:00
Nikita Popov
a7bfd006bd
Remove always-true comparisons
2014-09-15 23:07:31 +02:00
Nikita Popov
ca43b99fc6
Update types in zend_hash
...
* String lengths are size_t
* Indexes are uint32_t
* Flags are uint32_t
* Booleans are zend_bool
2014-09-15 23:07:31 +02:00
Dmitry Stogov
219794e1cd
Split and optimize loop
2014-08-27 00:52:50 +04:00
Anatol Belski
4d997f63d9
master renames phase 3
2014-08-25 20:22:49 +02:00
Anatol Belski
6f9f0bf205
master renames phase 2
2014-08-25 19:28:33 +02:00
Anatol Belski
c3e3c98ec6
master renames phase 1
2014-08-25 19:24:55 +02:00
Anatol Belski
864172d9a4
further fixes to ext/standard and zend
2014-08-16 17:31:40 +02:00
Anatol Belski
8ee2a4a9b5
first shot on merging the core fro the int64 branch
2014-08-16 11:16:11 +02:00
Dmitry Stogov
2ece977c80
Fixed conversion of empty packed array into hash
2014-08-14 13:44:37 +04:00
Dmitry Stogov
c1965f58d4
Use reference counting instead of zval duplication
2014-06-05 16:04:11 +04:00
Dmitry Stogov
b3b616cf7e
Introduced immutable arrays. They don't need to be copyed and may be used directly from SHM.
2014-05-29 18:21:56 +04:00
Dmitry Stogov
40256e0f9c
Use specialized functions instead of macros
2014-05-26 17:16:16 +04:00
Dmitry Stogov
b66728aabb
Removed useless initializations
2014-05-26 11:42:58 +04:00
Dmitry Stogov
9eb89dddb1
Use optimized zend_array_dup() function. convert zend_hash_num_elements() and zend_hash_next_free_element() into macros.
2014-05-23 20:37:53 +04:00
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