Fix a bunch of issues with cardtable code.
* sgen-cardtable.c (sgen_card_table_is_range_marked): Use card_in_range here since this is used for objects that can start at the middle of a card. * sgen-cardtable.c (move_cards_to_shadow_table): Properly copy the tail bytes of an object that spam around the cardtable. Don't copy more bytes than required. * sgen-cardtable.c (sgen_cardtable_scan_object): Add extra_idx variable that tracks the card offset that we're scanning. This is required when we wrap around. * sgen-cardtable.c (sgen_cardtable_scan_object): Properly reset card_base when at wrap around.
Showing
想要评论请 注册 或 登录