From 1dcc2cac0395bcb31decc3966df776ea38b71fb5 Mon Sep 17 00:00:00 2001 From: dearblue Date: Sat, 19 Oct 2024 11:08:32 +0900 Subject: [PATCH] Avoid calling `mrb_gv_set()` from `mrb_gc_unregister()` Should simply be ignored for the possibility of being called from `RData::dfree`. --- src/gc.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/gc.c b/src/gc.c index a9549e730..9fbeabc51 100644 --- a/src/gc.c +++ b/src/gc.c @@ -448,11 +448,7 @@ mrb_gc_unregister(mrb_state *mrb, mrb_value obj) if (mrb_immediate_p(obj)) return; table = mrb_gv_get(mrb, GC_ROOT_SYM); - if (mrb_nil_p(table)) return; - if (!mrb_array_p(table)) { - mrb_gv_set(mrb, GC_ROOT_SYM, mrb_nil_value()); - return; - } + if (!mrb_array_p(table)) return; a = mrb_ary_ptr(table); mrb_ary_modify(mrb, a); for (mrb_int i = 0; i < ARY_LEN(a); i++) {