Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Always call GC_on_mark_stack_empty when mark stack top reached
(fix of commit 0e63b39) The previous check for GC_mark_stack_too_small did not indicated there was not any room, rather that it was too small at some point during marking. If the stack had any content, it would set GC_mark_state to MS_NONE and call alloc_mark_stack(), rather than call on_ms_empty() first. Without this change, GC_on_mark_stack_empty procedure would not be executed when GC_mark_stack_too_small was set at any point during a mark phase, e.g. in the MS_PUSH_RESCUERS case above. * mark.c (GC_mark_some_inner): If on_ms_empty is non-zero, then call on_ms_empty() even if GC_mark_stack_too_small (i.e. check GC_mark_stack_too_small and call alloc_mark_stack() after on_ms_empty() call); update comment.
- Loading branch information