aboutsummaryrefslogtreecommitdiffstats
path: root/gc.c
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2021-06-28 14:44:22 -0400
committerPeter Zhu <peter@peterzhu.ca>2021-06-29 09:28:07 -0400
commit03dc66449326ce0945c1ccad7f51e57125b2b854 (patch)
tree17343250736e77651186f646cf72e1aa63205dca /gc.c
parent5e75280c8edcd0f3c8f79d0c532cbfd18074886a (diff)
downloadruby-03dc66449326ce0945c1ccad7f51e57125b2b854.tar.gz
Fix crash on RGENGC_CHECK_MODE=4
When running btest there is a crash when compiled with RGENGC_CHECK_MODE=4. The crash happens because `during_gc` is not turned off before `gc_marks_check` is called, causing the marking to happen on the main mark stack instead of mark stack created in `objspace_allrefs`.
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gc.c b/gc.c
index 44a1992cc1..b0229102e4 100644
--- a/gc.c
+++ b/gc.c
@@ -7977,7 +7977,9 @@ gc_marks_finish(rb_objspace_t *objspace)
}
#if RGENGC_CHECK_MODE >= 4
+ during_gc = FALSE;
gc_marks_check(objspace, gc_check_after_marks_i, "after_marks");
+ during_gc = TRUE;
#endif
{