From 4194fe9d655721ff4c65084496b35dc4f61a37fe Mon Sep 17 00:00:00 2001 From: Kouhei Sutou Date: Thu, 26 Apr 2018 15:25:36 +0900 Subject: Fix wrong the number of marked objects of MRB_TT_ENV in gray mark phase If MRB_TT_ENV has stack shared flag or bidx flag, flags is too large than the real stack size. --- src/gc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/gc.c b/src/gc.c index 8e2072788..69121d630 100644 --- a/src/gc.c +++ b/src/gc.c @@ -938,7 +938,7 @@ gc_gray_mark(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj) break; case MRB_TT_ENV: - children += (int)obj->flags; + children += MRB_ENV_STACK_LEN(obj); break; case MRB_TT_FIBER: -- cgit v1.2.3