Commit e93a17ed authored by Yukihiro Matsumoto's avatar Yukihiro Matsumoto

gc should handle regexp and match objects

parent 4f1f243f
......@@ -369,6 +369,24 @@ gc_mark_children(mrb_state *mrb, struct RBasic *obj)
}
break;
#ifdef INCLUDE_REGEXP
case MRB_TT_MATCH:
{
struct RMatch *m = (struct RMatch*)obj;
mrb_gc_mark(mrb, (struct RBasic*)m->str);
mrb_gc_mark(mrb, (struct RBasic*)m->regexp);
}
break;
case MRB_TT_REGEX:
{
struct RRegexp *r = (struct RRegexp*)obj;
mrb_gc_mark(mrb, (struct RBasic*)r->src);
}
break;
#endif
default:
break;
}
......@@ -443,7 +461,7 @@ obj_free(mrb_state *mrb, struct RBasic *obj)
d->type->dfree(mrb, d->data);
}
}
break;
break;
default:
break;
......@@ -541,6 +559,15 @@ gc_gray_mark(mrb_state *mrb, struct RBasic *obj)
children+=2;
break;
#ifdef INCLUDE_REGEXP
case MRB_TT_MATCH:
children+=2;
break;
case MRB_TT_REGEX:
children+=1;
break;
#endif
default:
break;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment