]> granicus.if.org Git - gc/commit
Fix assertion violation and partial overlapping in remove_roots_subregion
authorIvan Maidanski <ivmai@mail.ru>
Tue, 8 May 2018 17:17:48 +0000 (20:17 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 8 May 2018 17:17:48 +0000 (20:17 +0300)
commite849b45c86b96b0e9f75d01a5410413f05a95822
tree255adbc04c47e5718c774806cbdb7f84349f337f
parent404b6f264994f0b136a4eba3cb5d5060605a226e
Fix assertion violation and partial overlapping in remove_roots_subregion
(fix of commit 38d194a)

Issue #218 (bdwgc).

* mark_rts.c [USE_PROC_FOR_LIBRARIES] (GC_remove_roots_subregion):
Update comment; add assertion that b and e pointers are word-aligned;
handle also cases of partial overlapping with the existing roots;
call GC_rebuild_root_index() only when needed; update existing root
instead of removing old and adding new one (where possible); move
newly static added root to precede dynamic ones (if any); process all
static roots even if an intersection is already found.
mark_rts.c