free heap pages from mrb_close()

This commit is contained in:
Yukihiro Matsumoto
2012-08-28 02:11:00 +09:00
parent 376266959f
commit d04a7ec632
2 changed files with 15 additions and 0 deletions
+13
View File
@@ -284,6 +284,19 @@ mrb_init_heap(mrb_state *mrb)
#endif
}
void
mrb_free_heap(mrb_state *mrb)
{
struct heap_page *page = mrb->heaps;
struct heap_page *tmp;
while (page) {
tmp = page;
page = page->next;
mrb_free(mrb, tmp);
}
}
static void
gc_protect(mrb_state *mrb, struct RBasic *p)
{
+2
View File
@@ -51,6 +51,7 @@ mrb_open()
}
void mrb_free_symtbl(mrb_state *mrb);
void mrb_free_heap(mrb_state *mrb);
void
mrb_close(mrb_state *mrb)
@@ -72,6 +73,7 @@ mrb_close(mrb_state *mrb)
}
mrb_free(mrb, mrb->irep);
mrb_free_symtbl(mrb);
mrb_free_heap(mrb);
mrb_free(mrb, mrb);
}