Commit d04a7ec6 authored by Yukihiro Matsumoto's avatar Yukihiro Matsumoto

free heap pages from mrb_close()

parent 37626695
...@@ -284,6 +284,19 @@ mrb_init_heap(mrb_state *mrb) ...@@ -284,6 +284,19 @@ mrb_init_heap(mrb_state *mrb)
#endif #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 static void
gc_protect(mrb_state *mrb, struct RBasic *p) gc_protect(mrb_state *mrb, struct RBasic *p)
{ {
......
...@@ -51,6 +51,7 @@ mrb_open() ...@@ -51,6 +51,7 @@ mrb_open()
} }
void mrb_free_symtbl(mrb_state *mrb); void mrb_free_symtbl(mrb_state *mrb);
void mrb_free_heap(mrb_state *mrb);
void void
mrb_close(mrb_state *mrb) mrb_close(mrb_state *mrb)
...@@ -72,6 +73,7 @@ mrb_close(mrb_state *mrb) ...@@ -72,6 +73,7 @@ mrb_close(mrb_state *mrb)
} }
mrb_free(mrb, mrb->irep); mrb_free(mrb, mrb->irep);
mrb_free_symtbl(mrb); mrb_free_symtbl(mrb);
mrb_free_heap(mrb);
mrb_free(mrb, mrb); mrb_free(mrb, mrb);
} }
......
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