summaryrefslogtreecommitdiffhomepage
path: root/src/gc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gc.c')
-rw-r--r--src/gc.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/gc.c b/src/gc.c
index 6fcac6c2f..d3fc6d5a2 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -582,8 +582,8 @@ gc_mark_children(mrb_state *mrb, struct RBasic *obj)
case MRB_TT_EXCEPTION:
mrb_gc_mark_iv(mrb, (struct RObject*)obj);
- if ((obj->flags & MRB_EXC_MESG_INIT_FLAG) != 0) {
- mrb_gc_mark_value(mrb, ((struct RException*)obj)->mesg);
+ if ((obj->flags & MRB_EXC_MESG_STRING_FLAG) != 0) {
+ mrb_gc_mark(mrb, (struct RBasic*)((struct RException*)obj)->mesg);
}
break;
@@ -808,7 +808,7 @@ gc_gray_mark(mrb_state *mrb, struct RBasic *obj)
case MRB_TT_EXCEPTION:
children += mrb_gc_mark_iv_size(mrb, (struct RObject*)obj);
- if ((obj->flags & MRB_EXC_MESG_INIT_FLAG) != 0) {
+ if ((obj->flags & MRB_EXC_MESG_STRING_FLAG) != 0) {
children++;
}
break;