Add multi-heap support to gc_marks_wb_unprotected_objects
This commit is contained in:
parent
f9e13cda04
commit
9f110ced57
Notes:
git
2021-06-09 03:32:04 +09:00
6
gc.c
6
gc.c
@ -7877,11 +7877,11 @@ gc_marks_wb_unprotected_objects_in_plane(rb_objspace_t *objspace, intptr_t p, bi
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gc_marks_wb_unprotected_objects(rb_objspace_t *objspace)
|
gc_marks_wb_unprotected_objects(rb_objspace_t *objspace, rb_heap_t *heap)
|
||||||
{
|
{
|
||||||
struct heap_page *page = 0;
|
struct heap_page *page = 0;
|
||||||
|
|
||||||
list_for_each(&heap_eden->pages, page, page_node) {
|
list_for_each(&heap->pages, page, page_node) {
|
||||||
bits_t *mark_bits = page->mark_bits;
|
bits_t *mark_bits = page->mark_bits;
|
||||||
bits_t *wbun_bits = page->wb_unprotected_bits;
|
bits_t *wbun_bits = page->wb_unprotected_bits;
|
||||||
RVALUE *p = page->start;
|
RVALUE *p = page->start;
|
||||||
@ -7950,7 +7950,7 @@ gc_marks_finish(rb_objspace_t *objspace)
|
|||||||
|
|
||||||
objspace->flags.during_incremental_marking = FALSE;
|
objspace->flags.during_incremental_marking = FALSE;
|
||||||
/* check children of all marked wb-unprotected objects */
|
/* check children of all marked wb-unprotected objects */
|
||||||
gc_marks_wb_unprotected_objects(objspace);
|
gc_marks_wb_unprotected_objects(objspace, heap_eden);
|
||||||
}
|
}
|
||||||
#endif /* GC_ENABLE_INCREMENTAL_MARK */
|
#endif /* GC_ENABLE_INCREMENTAL_MARK */
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user