summaryrefslogtreecommitdiff
path: root/Zend/zend_gc.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix garbage marking in gc_collect_roots()Nikita Popov2018-03-071-5/+4
| | | | | | | | gc_collect_white() will mark white nodes as black and add them as garbage, but only if it's not buffered yet. The already buffered roots are instead marked as garbage in gc_collect_roots() directly. However, if gc_collect_white() marked a (buffered) root as black through recursion, it would not subsequently be marked as garbage.
* Fixed bug #76050Dmitry Stogov2018-03-061-3/+3
|
* TypoDmitry Stogov2018-03-051-1/+1
|
* Reverted e6d6fcedf71a658c49b7c2eb55305cf5970ec681 and overdesign introduced ↵Dmitry Stogov2018-03-051-124/+114
| | | | | | in ae64dd6d566de448d20232436e1aba25c611357c. Now we have just indexex, pointers and linked list od unused buffers.
* Fix incorrect GC_NUM2ADDR usageNikita Popov2018-03-051-1/+1
| | | | | Both first_unused and GC_MAX_UNCOMPRESSED are addresses, so we should compare them directly.
* Switch to better GC address representationDmitry Stogov2018-03-021-8/+8
|
* Make distinct between indexes/numbers, GC addresses and pointers to ↵Dmitry Stogov2018-03-021-96/+116
| | | | | | gc_root_buffers. Perform conversion through macros.
* GC API cleanupDmitry Stogov2018-03-021-7/+22
|
* Switch to siple "commpression" schemeDmitry Stogov2018-03-021-50/+24
|
* micro-optimizationDmitry Stogov2018-03-021-1/+2
|
* CleanupDmitry Stogov2018-03-021-10/+3
|
* Tunning for fast pathsDmitry Stogov2018-03-011-56/+71
|
* CleanupDmitry Stogov2018-03-011-37/+32
|
* Improve GC color checksDmitry Stogov2018-03-011-20/+24
|
* Implemented simple adaptive GC threshold selection.Dmitry Stogov2018-03-011-7/+27
|
* GC improvementDmitry Stogov2018-03-011-348/+436
|
* Tunning for new GC_TYPE_INFO layoutDmitry Stogov2018-02-281-76/+100
|
* typoDmitry Stogov2018-02-281-1/+1
|
* Use macros to update specific parts of GC_TYPE_INFO() (direct assignments to ↵Dmitry Stogov2018-02-281-27/+31
| | | | GC_TYPE(), GC_FLAGS() and GC_INFO() are prohibited)
* Completely hide GC implementation details into zend_gc.cDmitry Stogov2018-02-271-7/+103
|
* Use OBJ_FLAGS() macro to access object flags (even if they are currently ↵Dmitry Stogov2018-01-221-9/+9
| | | | stored together with GC_FLAGS)
* year++Xinchen Hui2018-01-021-1/+1
|
* Encapsulate reference-counting primitives.Dmitry Stogov2017-10-271-21/+21
| | | | | | Prohibit direct update of GC_REFCOUNT(), GC_SET_REFCOUNT(), GC_ADDREF() and GC_DELREF() shoukf be instead. Added mactros to validate reference-counting (disabled for now). These macros are going to be used to eliminate race-condintions during reference-counting on data shared between threads.
* further sync for vim mode linesAnatol Belski2017-07-041-0/+2
|
* Removed deprecated checks.Dmitry Stogov2017-06-271-26/+15
|
* Merge branch 'PHP-7.1'Nikita Popov2017-03-071-3/+6
|\
| * Merge branch 'PHP-7.0' into PHP-7.1Nikita Popov2017-03-071-3/+6
| |\
| | * Fix out of bounds access in gc_find_additional_buffer()Nikita Popov2017-03-071-3/+6
| | |
* | | Merge branch 'PHP-7.1'Xinchen Hui2017-02-131-52/+71
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | * PHP-7.1: Update NEWS Fixed bug #73989 (PHP 7.1 Segfaults within Symfony test suite) Conflicts: Zend/zend_gc.c
| * | Merge branch 'PHP-7.0' into PHP-7.1Xinchen Hui2017-02-131-52/+71
| |\ \ | | |/ | | | | | | | | | * PHP-7.0: Fixed bug #73989 (PHP 7.1 Segfaults within Symfony test suite)
| | * Fixed bug #73989 (PHP 7.1 Segfaults within Symfony test suite)Xinchen Hui2017-02-131-52/+71
| | |
* | | Merge branch 'PHP-7.1'Xinchen Hui2017-02-111-2/+2
|\ \ \ | |/ / | | | | | | | | | * PHP-7.1: Fixed typo
| * | Merge branch 'PHP-7.0' into PHP-7.1Xinchen Hui2017-02-111-2/+2
| |\ \ | | |/ | | | | | | | | | * PHP-7.0: Fixed typo
| | * Fixed typoXinchen Hui2017-02-111-2/+2
| | |
| | * Update copyright headers to 2017Sammy Kaye Powers2017-01-041-1/+1
| | |
| * | Update copyright headers to 2017Sammy Kaye Powers2017-01-041-1/+1
| | |
* | | Replace redundand checks with ZEND_ASSERT. We shouldn't get IS_OBJECTs ↵Dmitry Stogov2017-02-031-68/+61
| | | | | | | | | | | | without object_storage.
* | | Enable HT RC assertions with escape-hatchNikita Popov2017-01-231-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | HT functions that modify the array now assert that rc=1. As we don't respect this COW constraint everywhere, either for a good reason or because fixing it would take more work, we provide an escape hatch in the form of HT_ALLOW_COW_VIOLATION(ht). If this macro is called assertions on this ht are disabled. The macro is a no-op in release mode.
* | | Update copyright headers to 2017Sammy Kaye Powers2017-01-021-1/+1
|/ /
* | Merge remote-tracking branch 'origin/PHP-7.0' into PHP-7.1Bob Weinand2016-07-271-0/+1
|\ \ | |/
| * Fixed a potential segfault in zend_objects_store_free_object_storage()Bob Weinand2016-07-271-0/+1
| | | | | | | | | | Under the special circumstance where a garbage collected objects bucket slot was not reused until the end of the script, we get access into freed memory... No test added as it usually is valgrind-only, and only sometimes when the memory happens to have changed (i.e. (GC_FLAGS(obj) & IS_OBJ_FREE_CALLED) == 0), it actually *may* segfault
* | Fixed bug #71818 (Memory leak when array altered in destructor)Dmitry Stogov2016-07-141-3/+0
| |
* | Add document for zend_gc_collect_cyclesc9s2016-07-111-0/+52
| |
* | Reimplemented Bob's commit bac6fdb0c52c924e726c5a78de8858bf27b6586b without ↵Dmitry Stogov2016-05-061-1/+1
| | | | | | | | insignificant renaming and white-space changes
* | Revert "Refactor zval cleanup into single function"Dmitry Stogov2016-05-061-1/+1
| | | | | | | | This reverts commit bac6fdb0c52c924e726c5a78de8858bf27b6586b.
* | Refactor zval cleanup into single functionBob Weinand2016-05-051-1/+1
|/ | | | Also use zval_ptr_dtor_nogc() everywhere in Zend in favor of zval_dtor()
* bump year which is missed in rev 49493a2Xinchen Hui2016-01-021-1/+1
|
* Fixed bug #70805 (Segmentation faults whilst running Drupal 8 test suite)Xinchen Hui2015-11-031-0/+7
|
* Fixed return without valueDmitry Stogov2015-05-061-1/+1
|
* Fixed bug #69534 (Cycle leaks through declared properties on internal classes)Dmitry Stogov2015-05-061-28/+113
|