Add multi-heap support to gc_marks_wb_unprotected_objects

This commit is contained in:
Peter Zhu 2021-06-08 10:45:18 -04:00
parent f9e13cda04
commit 9f110ced57
Notes: git 2021-06-09 03:32:04 +09:00

6
gc.c
View File

@ -7877,11 +7877,11 @@ gc_marks_wb_unprotected_objects_in_plane(rb_objspace_t *objspace, intptr_t p, bi
}
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;
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 *wbun_bits = page->wb_unprotected_bits;
RVALUE *p = page->start;
@ -7950,7 +7950,7 @@ gc_marks_finish(rb_objspace_t *objspace)
objspace->flags.during_incremental_marking = FALSE;
/* 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 */