summaryrefslogtreecommitdiffhomepage
path: root/src/gc.c
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-04-28 00:32:34 +0900
committerYukihiro Matsumoto <[email protected]>2012-04-28 00:32:34 +0900
commit32db0e5d8ca2aa2d8e7ce6577f9e0c5cee76ba0d (patch)
tree38ae4bc1ebcaee6e4b9656a0c77e11561df140d3 /src/gc.c
parent9e45eb185b50d7f45096b4edb0ec7ae49b6886b2 (diff)
downloadmruby-32db0e5d8ca2aa2d8e7ce6577f9e0c5cee76ba0d.tar.gz
mruby-32db0e5d8ca2aa2d8e7ce6577f9e0c5cee76ba0d.zip
struct RString member should not be mrb_value
Diffstat (limited to 'src/gc.c')
-rw-r--r--src/gc.c5
1 files changed, 3 insertions, 2 deletions
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;