diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-01-23 05:11:54 -0800 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-01-23 05:11:54 -0800 |
| commit | 8961a7880830f403c882113dcc1e754862da67ea (patch) | |
| tree | 083982740b7968a98df18a42796783ebd6747ed8 /src | |
| parent | b79e1ecbaac37dccd3b508bc237d51aa1bc17182 (diff) | |
| parent | 310b0dce8fa1e3f98b2184c2b6c1a0f091c2d4eb (diff) | |
| download | mruby-8961a7880830f403c882113dcc1e754862da67ea.tar.gz mruby-8961a7880830f403c882113dcc1e754862da67ea.zip | |
Merge pull request #770 from masuidrive/mrbgem_finalizer
Added finalizer of mrbgems
Diffstat (limited to 'src')
| -rw-r--r-- | src/init.c | 9 | ||||
| -rw-r--r-- | src/state.c | 3 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/init.c b/src/init.c index 48008b150..73ff8fce2 100644 --- a/src/init.c +++ b/src/init.c @@ -28,6 +28,7 @@ void mrb_init_time(mrb_state*); void mrb_init_math(mrb_state*); void mrb_init_mrblib(mrb_state*); void mrb_init_mrbgems(mrb_state*); +void mrb_final_mrbgems(mrb_state*); #define DONE mrb_gc_arena_restore(mrb, 0); void @@ -70,3 +71,11 @@ mrb_init_core(mrb_state *mrb) mrb_init_mrbgems(mrb); DONE; #endif } + +void +mrb_final_core(mrb_state *mrb) +{ +#ifndef DISABLE_GEMS + mrb_final_mrbgems(mrb); DONE; +#endif +}
\ No newline at end of file diff --git a/src/state.c b/src/state.c index c1ad4c6ad..c48997a7c 100644 --- a/src/state.c +++ b/src/state.c @@ -12,6 +12,7 @@ void mrb_init_heap(mrb_state*); void mrb_init_core(mrb_state*); void mrb_init_ext(mrb_state*); +void mrb_final_core(mrb_state*); mrb_state* mrb_open_allocf(mrb_allocf f, void *ud) @@ -88,6 +89,8 @@ mrb_close(mrb_state *mrb) { int i; + mrb_final_core(mrb); + /* free */ mrb_gc_free_gv(mrb); mrb_free(mrb, mrb->stbase); |
