diff options
Diffstat (limited to 'src/gc.c')
| -rw-r--r-- | src/gc.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -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; |
