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
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
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
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
Dmitry Stogov
62c448ab8b
Fixed serialize/unserialize problems
2014-03-17 17:23:27 +04:00