Commit f41aae73 authored by Patrick Hogan's avatar Patrick Hogan

Call dfree member on RData/MRB_TT_DATA when collected

Signed-off-by: default avatarPatrick Hogan <pbhogan@gmail.com>
parent 8ab46d24
...@@ -407,8 +407,8 @@ obj_free(mrb_state *mrb, struct RBasic *obj) ...@@ -407,8 +407,8 @@ obj_free(mrb_state *mrb, struct RBasic *obj)
struct REnv *e = (struct REnv *)obj; struct REnv *e = (struct REnv *)obj;
if (e->cioff < 0) { if (e->cioff < 0) {
mrb_free(mrb, e->stack); mrb_free(mrb, e->stack);
e->stack = 0; e->stack = 0;
} }
} }
break; break;
...@@ -432,6 +432,14 @@ obj_free(mrb_state *mrb, struct RBasic *obj) ...@@ -432,6 +432,14 @@ obj_free(mrb_state *mrb, struct RBasic *obj)
case MRB_TT_STRUCT: case MRB_TT_STRUCT:
case MRB_TT_EXCEPTION: case MRB_TT_EXCEPTION:
break; break;
case MRB_TT_DATA:
{
struct RData *d = (struct RData *)obj;
if (d->type->dfree) {
d->type->dfree(mrb, d->data);
}
}
break;
} }
obj->tt = MRB_TT_FREE; obj->tt = MRB_TT_FREE;
} }
......
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