diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-08-29 11:45:36 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-08-29 11:45:36 +0900 |
| commit | 950204bc4d419fc3b2a0842eccf1d253735e7839 (patch) | |
| tree | 61850a6bfabfaf237200054918f35d64a5a1bbb5 /src/gc.c | |
| parent | 4848c1f0c76872d78b1c86066e5da3c71f759630 (diff) | |
| download | mruby-950204bc4d419fc3b2a0842eccf1d253735e7839.tar.gz mruby-950204bc4d419fc3b2a0842eccf1d253735e7839.zip | |
remove flags from irep
Diffstat (limited to 'src/gc.c')
| -rw-r--r-- | src/gc.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -284,15 +284,22 @@ mrb_init_heap(mrb_state *mrb) #endif } +static void obj_free(mrb_state *mrb, struct RBasic *obj); + void mrb_free_heap(mrb_state *mrb) { struct heap_page *page = mrb->heaps; struct heap_page *tmp; + RVALUE *p, *e; while (page) { tmp = page; page = page->next; + for (p = tmp->objects, e=p+MRB_HEAP_PAGE_SIZE; p<e; p++) { + if (p->as.free.tt != MRB_TT_FREE) + obj_free(mrb, &p->as.basic); + } mrb_free(mrb, tmp); } } |
