Xinchen Hui
9465ec4673
Added num_roots to gc_status
2018-06-13 16:41:51 +08:00
Dmitry Stogov
e788e8261e
Removed "gc_" prefix.
2018-06-13 11:28:24 +03:00
Dmitry Stogov
2afc83732c
Allow access to some garbage collection internals (Benjamin Eberlei)
2018-06-13 11:10:17 +03:00
Xinchen Hui
ffaee27478
Fixed bug #76427 (Segfault in zend_objects_store_put)
2018-06-11 21:00:38 +08:00
Xinchen Hui
6c3a38353c
indent
2018-05-22 17:05:39 +08:00
Xinchen Hui
bc1211b8b8
unnecessary branch
2018-05-22 17:04:42 +08:00
Nikita Popov
3b5b64ce75
Fix garbage marking in gc_collect_roots()
...
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.
2018-03-07 09:50:25 +01:00
Dmitry Stogov
c060d88c36
Fixed bug #76050
2018-03-06 03:31:06 +03:00
Dmitry Stogov
877da311bc
Typo
2018-03-05 20:45:26 +03:00
Dmitry Stogov
ab139b6bfd
Reverted e6d6fcedf7
and overdesign introduced in ae64dd6d56
.
...
Now we have just indexex, pointers and linked list od unused buffers.
2018-03-05 20:20:58 +03:00
Nikita Popov
a0563aa7bc
Fix incorrect GC_NUM2ADDR usage
...
Both first_unused and GC_MAX_UNCOMPRESSED are addresses, so we
should compare them directly.
2018-03-05 16:29:46 +01:00
Dmitry Stogov
e6d6fcedf7
Switch to better GC address representation
2018-03-02 17:36:18 +03:00
Dmitry Stogov
ae64dd6d56
Make distinct between indexes/numbers, GC addresses and pointers to gc_root_buffers.
...
Perform conversion through macros.
2018-03-02 17:02:29 +03:00
Dmitry Stogov
f844d40fdc
GC API cleanup
2018-03-02 11:02:21 +03:00
Dmitry Stogov
06c6c632c3
Switch to siple "commpression" scheme
2018-03-02 10:01:08 +03:00
Dmitry Stogov
8b5e76c790
micro-optimization
2018-03-02 01:53:59 +03:00
Dmitry Stogov
5c78bb80cc
Cleanup
2018-03-02 01:42:42 +03:00
Dmitry Stogov
26e0ebffac
Tunning for fast paths
2018-03-01 17:38:32 +03:00
Dmitry Stogov
165dadace3
Cleanup
2018-03-01 15:51:50 +03:00
Dmitry Stogov
5994b8ac95
Improve GC color checks
2018-03-01 11:55:26 +03:00
Dmitry Stogov
077d227500
Implemented simple adaptive GC threshold selection.
2018-03-01 11:04:28 +03:00
Dmitry Stogov
fd348ec43f
GC improvement
2018-03-01 03:17:21 +03:00
Dmitry Stogov
4631a5e2e1
Tunning for new GC_TYPE_INFO layout
2018-02-28 13:25:29 +03:00
Dmitry Stogov
31e5c34542
typo
2018-02-28 10:16:51 +03:00
Dmitry Stogov
6f483dc94c
Use macros to update specific parts of GC_TYPE_INFO() (direct assignments to GC_TYPE(), GC_FLAGS() and GC_INFO() are prohibited)
2018-02-28 00:52:12 +03:00
Dmitry Stogov
baa9890112
Completely hide GC implementation details into zend_gc.c
2018-02-27 21:08:26 +03:00
Dmitry Stogov
b3e22da745
Use OBJ_FLAGS() macro to access object flags (even if they are currently stored together with GC_FLAGS)
2018-01-22 15:57:00 +03:00
Xinchen Hui
a6519d0514
year++
2018-01-02 12:57:58 +08:00
Dmitry Stogov
49ea143bbd
Encapsulate reference-counting primitives.
...
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.
2017-10-27 01:28:58 +03:00
Anatol Belski
bc5811f361
further sync for vim mode lines
2017-07-04 18:12:45 +02:00
Dmitry Stogov
c0be77aa75
Removed deprecated checks.
2017-06-27 13:12:09 +03:00
Nikita Popov
361b7159e7
Merge branch 'PHP-7.1'
2017-03-07 13:18:04 +01:00
Nikita Popov
8a6281455e
Merge branch 'PHP-7.0' into PHP-7.1
2017-03-07 13:17:33 +01:00
Nikita Popov
549a30d2cd
Fix out of bounds access in gc_find_additional_buffer()
2017-03-07 13:16:06 +01:00
Xinchen Hui
00e5ea7b76
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Update NEWS
Fixed bug #73989 (PHP 7.1 Segfaults within Symfony test suite)
Conflicts:
Zend/zend_gc.c
2017-02-13 19:24:00 +08:00
Xinchen Hui
9df7cc3e68
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Fixed bug #73989 (PHP 7.1 Segfaults within Symfony test suite)
2017-02-13 19:17:09 +08:00
Xinchen Hui
3917350531
Fixed bug #73989 (PHP 7.1 Segfaults within Symfony test suite)
2017-02-13 19:16:17 +08:00
Xinchen Hui
cad92c1243
Merge branch 'PHP-7.1'
...
* PHP-7.1:
Fixed typo
2017-02-11 00:02:07 +08:00
Xinchen Hui
808a11041d
Merge branch 'PHP-7.0' into PHP-7.1
...
* PHP-7.0:
Fixed typo
2017-02-11 00:01:38 +08:00
Xinchen Hui
db7c0badd4
Fixed typo
2017-02-11 00:01:09 +08:00
Dmitry Stogov
a082824725
Replace redundand checks with ZEND_ASSERT. We shouldn't get IS_OBJECTs without object_storage.
2017-02-03 18:31:25 +03:00
Nikita Popov
fd4025069d
Enable HT RC assertions with escape-hatch
...
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.
2017-01-23 17:19:06 +00:00
Sammy Kaye Powers
dac6c639bb
Update copyright headers to 2017
2017-01-04 11:23:42 -06:00
Sammy Kaye Powers
478f119ab9
Update copyright headers to 2017
2017-01-04 11:14:55 -06:00
Sammy Kaye Powers
9e29f841ce
Update copyright headers to 2017
2017-01-02 09:30:12 -06:00
Bob Weinand
dfb3e270c2
Merge remote-tracking branch 'origin/PHP-7.0' into PHP-7.1
2016-07-27 18:18:47 +02:00
Bob Weinand
5513f00a97
Fixed a potential segfault in zend_objects_store_free_object_storage()
...
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
2016-07-27 18:08:43 +02:00
Dmitry Stogov
8fc934b0a1
Fixed bug #71818 (Memory leak when array altered in destructor)
2016-07-14 12:05:44 +03:00
c9s
9288ce5390
Add document for zend_gc_collect_cycles
2016-07-11 12:44:42 +02:00
Dmitry Stogov
cca2c8ecc4
Reimplemented Bob's commit bac6fdb0c5
without insignificant renaming and white-space changes
2016-05-06 10:47:58 +03:00