summaryrefslogtreecommitdiff
path: root/Zend/zend_hash.h
Commit message (Collapse)AuthorAgeFilesLines
* Inlined fast pathDmitry Stogov2016-05-041-0/+20
|
* Merge branch 'PHP-7.0'Dmitry Stogov2016-03-021-0/+12
|\ | | | | | | | | * PHP-7.0: Introduce zend_symtable_exists_ind() for API consistency
| * Introduce zend_symtable_exists_ind() for API consistencyDmitry Stogov2016-03-021-0/+12
| |
* | Merge branch 'PHP-7.0'Xinchen Hui2016-03-021-1/+1
|\ \ | |/ | | | | | | * PHP-7.0: Use hash_exists_ind in symbol table
| * Use hash_exists_ind in symbol tableXinchen Hui2016-03-021-1/+1
| |
* | Remove use of register keyword in headersNikita Popov2016-02-041-1/+1
|/ | | | | | | Headers must be C++ compatible -- this throws warnings. The register keyword is not used for optimization, at least not in optimized builds.
* bump year which is missed in rev 49493a2Xinchen Hui2016-01-021-1/+1
|
* Fixed possible crash on Zend/tests/bug71154.phptDmitry Stogov2015-12-211-0/+1
|
* Improved fix for bug (count on symbol table)Xinchen Hui2015-11-231-0/+1
|
* Add myself into list of authors of the most refactored files.Dmitry Stogov2015-08-311-0/+1
|
* Fixed bug #70187 (Notice: unserialize(): Unexpected end of serialized data)Dmitry Stogov2015-08-261-1/+2
|
* zend_hash_resize seems useless, use zend_hash_extendXinchen Hui2015-08-131-1/+0
|
* Hmm, we should also take care of uninitialized hashTableXinchen Hui2015-08-101-1/+1
|
* Fixed bug #70211 (php 7 ZEND_HASH_IF_FULL_DO_RESIZE use after free)Xinchen Hui2015-08-101-0/+1
|
* Fixed bug #69674 (SIGSEGV array.c:953)Xinchen Hui2015-07-291-1/+1
|
* Use ZSTR_ API to access zend_string elements (this is just renaming without ↵Dmitry Stogov2015-06-301-4/+4
| | | | semantick changes).
* Improved zend_string API (Francois Laupretre)Dmitry Stogov2015-06-291-3/+3
| | | | | | | | | | | | | | | | | | | | Squashed commit of the following: commit d96eab8d79b75ac83d49d49ae4665f948d15a804 Author: Francois Laupretre <francois@tekwire.net> Date: Fri Jun 26 01:23:31 2015 +0200 Use the new 'ZSTR' macros in the rest of the code. Does not change anything to the generated code (thanks to compat macros) but cleaner. commit b3526439104ac7a89a8e0c79dbebf33b22bd01b8 Author: Francois Laupretre <francois@tekwire.net> Date: Thu Jun 25 13:45:06 2015 +0200 Improve zend_string API Add missing methods
* Use better zend_hash_* functionsDmitry Stogov2015-06-051-0/+9
|
* Improve the fix for bug #69756Xinchen Hui2015-06-051-2/+3
|
* Improved hash table copyingDmitry Stogov2015-05-191-2/+4
|
* Use new hash iteration API.Dmitry Stogov2015-04-271-0/+4
|
* Optimized zend_hash_rehash(), added some exoectations to generate better codeDmitry Stogov2015-04-241-2/+2
|
* Added HashTable flag HASH_FLAG_STATIC_KEYS that is maintaned to be set if ↵Dmitry Stogov2015-04-241-6/+22
| | | | | | all hash table keys are numbers or interned strings. Take this flag into account when copy or destroy HashTable to avoud useless checks for each key.
* Keep realpath and PCRE caches in consistency with opcache SHM.Dmitry Stogov2015-04-221-0/+1
|
* Merge branch 'coroutineDelegation' of https://github.com/bwoebi/php-srcBob Weinand2015-04-141-0/+9
|\
| * Added yield from operatorBob Weinand2015-03-071-0/+9
| |
* | Add some assumptions.Dmitry Stogov2015-03-241-12/+72
| |
* | fix datatype mismatch warningsAnatol Belski2015-03-191-3/+3
| |
* | Use fastcall calling convention for most critical ZE subsystems.Dmitry Stogov2015-03-131-78/+71
| |
* | Changed HashTable layout:Dmitry Stogov2015-03-131-11/+9
| | | | | | | | | | | | | | Removed HashTable->arHash (reduced memory consumption). Now hash slots may be accessed using HT_HASH() macro. Hash slotas are allocated together with Buckets (before them) and lay in reverse order from HashTable->arData base address (see comments in Zend/zend_types.h) Indexes in hash table and conflict resolution chains (Z_NEXT) may be stored as indeces or offsets in bytes, depending on system (32 or 64-bit). HashTable data filelds are reordered to keep the most useful for zend_hash_find() data in the same CPU cache line.
* | Fixed zend_hash_append result duplicated keyXinchen Hui2015-03-081-6/+6
| | | | | | | | | | | | | | actually, maybe we should precalculate before calling zend_hash_appen when we are not sure whether the hash is caclculated(prop_info->name). but it looks a little ugly.. (also for zend_string_copy)
* | Fixed bug #69198 (Compact function generate array with length but no content)Xinchen Hui2015-03-071-2/+4
| |
* | Use fast zend_hash_append() APIDmitry Stogov2015-03-061-0/+16
| |
* | Improved method inhereitance code and cleanupDmitry Stogov2015-03-051-0/+9
| |
* | Improved ineritance codePRE_PHP7_EREG_MYSQL_REMOVALSDmitry Stogov2015-03-041-0/+16
| |
* | Improved code for class property inheritanceDmitry Stogov2015-03-041-0/+17
| |
* | Merge branch 'master' of https://git.php.net/repository/php-srcXinchen Hui2015-03-031-3/+3
|\ \
| * | Strength reductionDmitry Stogov2015-03-021-3/+3
| |/
* | Fixed #69166 (Assigning array_values() to array does not reset key counter)Xinchen Hui2015-03-031-1/+1
|/
* Merged zend_array and HashTable into the single data structure.Dmitry Stogov2015-02-131-1/+1
| | | | | Now each HashTable is also zend_array, so it's refcounted and may be a subject for Copy on Write zend_array_dup() was changed to allocate and return HashTable, instead of taking preallocated HashTable as argument.
* Fix "forech" statemt behaviour according to ↵Dmitry Stogov2015-02-121-9/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://wiki.php.net/rfc/php7_foreach Squashed commit of the following: commit 1e41295097576dbce6c197ddb7507c07ccae3cbe Author: Dmitry Stogov <dmitry@zend.com> Date: Sat Jan 31 07:28:58 2015 +0300 Generalize HashTableIterator API to allows its usage without involvement of HashTable.nInternalPonter commit 5406f21b11e563069d64045e599693b51c444b63 Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Jan 30 18:08:43 2015 +0300 Reduced alghorithms complexity commit b37f1d58d2a141b6e1d980a461ccb588d4317d2e Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Jan 30 18:08:30 2015 +0300 Fixed test name commit fb2d079645829b12ed4e55a461034df6400bc430 Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Jan 30 18:08:05 2015 +0300 API cleanup commit 08302c0d6d1cab279b9f2129df03a057baddf2ff Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Jan 30 14:20:46 2015 +0300 Make array_splice() to preserve foreach hash position commit cc4b7be41e2e2b9b0d7a3c8e98466b8886692e6e Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Jan 30 12:24:31 2015 +0300 Make internal function, operation on array passed by reference, to preserve foreach hash position commit 5aa9712b0a30303aadfe3bdd8ae1f072ca3e6ba1 Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Jan 30 09:49:35 2015 +0300 Implement consistent behavior for foreach by value over plain object commit 4c5b385ff53ae9f0b52572e98c4db801f56603b0 Author: Dmitry Stogov <dmitry@zend.com> Date: Fri Jan 30 07:56:37 2015 +0300 More careful iterators update. commit 721fc9e80d2ee8f2cd79c8c3cdceffae2c72de92 Author: Dmitry Stogov <dmitry@zend.com> Date: Thu Jan 29 21:43:28 2015 +0300 Added new test commit 15a23b1218b3e38630d677751a975907daa2cd54 Author: Dmitry Stogov <dmitry@zend.com> Date: Thu Jan 29 21:05:02 2015 +0300 Reimplement iteration magic with HashTableIterators (see https://wiki.php.net/rfc/php7_foreach#implementation_details) commit 10a3260b1f16b6075fd8140f673dfef4d5efea91 Author: Dmitry Stogov <dmitry@zend.com> Date: Thu Jan 29 21:04:44 2015 +0300 New test commit eef80c583762d1e98d177cdbb27e3a8a6b0c4539 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Jan 28 16:52:21 2015 +0300 Fixed foreach by reference iteration over constant array commit 61e739187391661e2d541947bec25d7dcc4479f3 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Jan 28 14:59:54 2015 +0300 Fixed temporary variable re-allocation pass commit 92e90c09f085c22707ff4a59201f016f56e0ef8b Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Jan 28 12:44:57 2015 +0300 Fixed operand destruction in case of exceptions in iterator commit dd2a36a2074bbb0cb31de00b66dcf2812d6d753f Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Jan 28 10:02:34 2015 +0300 Use GET_OP1_ZVAL_PTR_DEREF() (IS_TMP_VAR and IS_CONST can't be IS_REFERENCE) commit 4638f7b91407c48710007af82a68da0007c820f2 Author: Dmitry Stogov <dmitry@zend.com> Date: Wed Jan 28 07:43:28 2015 +0300 Change "foreach" statement behavior (this is just a PoC yet) - "foreach by value" don't relay on internal array/object pointer and doesnt perform array duplication. It just locks it incrementing reference counter. If the original array is modified by some code, the copy on write is performed and "foreach" still work with the old copy. - it makes no difference if array given to "foreach by value" is reference itself - "foreach by reference" still use internal array/object pointer and should work similar to PHP-5. (This id not completely implemented)
* bump yearXinchen Hui2015-01-151-1/+1
|
* Faster sorting algoXinchen Hui2015-01-141-1/+7
|
* trailing whitespace removalStanislav Malyshev2015-01-101-6/+6
|
* Use special flag (HASH_FLAG_INITIALIZED) instead of (nTableMask == 0) to ↵Dmitry Stogov2014-12-271-0/+1
| | | | | | | | 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.
* Drop duplicate arg from hash_get_current_key_exNikita Popov2014-12-261-3/+3
|
* API for fast construction of packed arraysDmitry Stogov2014-12-231-0/+27
|
* Revert "Improve Hash foreach macros"Xinchen Hui2014-12-231-18/+0
| | | | This reverts commit 95bb0a0f7aec46cacf6a447ded1688e6c6ff4b62.
* Improve Hash foreach macrosXinchen Hui2014-12-231-0/+18
|
* first shot remove TSRMLS_* thingsAnatol Belski2014-12-131-12/+12
|