From 32db0e5d8ca2aa2d8e7ce6577f9e0c5cee76ba0d Mon Sep 17 00:00:00 2001 From: Yukihiro Matsumoto Date: Sat, 28 Apr 2012 00:32:34 +0900 Subject: struct RString member should not be mrb_value --- src/gc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/gc.c') diff --git a/src/gc.c b/src/gc.c index 995678b0c..687e601a9 100644 --- a/src/gc.c +++ b/src/gc.c @@ -351,8 +351,9 @@ gc_mark_children(mrb_state *mrb, struct RBasic *obj) { struct RString *s = (struct RString*)obj; - if (s->flags & MRB_STR_SHARED) { - mrb_gc_mark_value(mrb, s->aux.shared) + while (s->flags & MRB_STR_SHARED) { + s = s->aux.shared; + if (!s) break; } } break; -- cgit v1.2.3