diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-07-18 23:26:36 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-07-18 23:26:36 +0900 |
| commit | 329938ef159d54523cb36aa7069abb7c35ec77d8 (patch) | |
| tree | 0583d625bed5367ded4bb289cf586218d3424060 /src/gc.c | |
| parent | 52aafcd001095470ac1c397bdf83ce10e919c753 (diff) | |
| download | mruby-329938ef159d54523cb36aa7069abb7c35ec77d8.tar.gz mruby-329938ef159d54523cb36aa7069abb7c35ec77d8.zip | |
Simplify `mrb_gc_arena_restore()` to reduce overhead.
It will no longer shrink arena region. Instead `vm.c` uses
a static function `mrb_gc_arena_shrink()` to shrink.
Diffstat (limited to 'src/gc.c')
| -rw-r--r-- | src/gc.c | 28 |
1 files changed, 0 insertions, 28 deletions
@@ -1243,34 +1243,6 @@ mrb_garbage_collect(mrb_state *mrb) mrb_full_gc(mrb); } -MRB_API int -mrb_gc_arena_save(mrb_state *mrb) -{ - return mrb->gc.arena_idx; -} - -MRB_API void -mrb_gc_arena_restore(mrb_state *mrb, int idx) -{ - mrb_gc *gc = &mrb->gc; - -#ifndef MRB_GC_FIXED_ARENA - int capa = gc->arena_capa; - - if (idx < capa / 4) { - capa >>= 2; - if (capa < MRB_GC_ARENA_SIZE) { - capa = MRB_GC_ARENA_SIZE; - } - if (capa != gc->arena_capa) { - gc->arena = (struct RBasic**)mrb_realloc(mrb, gc->arena, sizeof(struct RBasic*)*capa); - gc->arena_capa = capa; - } - } -#endif - gc->arena_idx = idx; -} - /* * Field write barrier * Paint obj(Black) -> value(White) to obj(Black) -> value(Gray). |
