mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
free heap pages from mrb_close()
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user