summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2013-01-23 05:11:54 -0800
committerYukihiro "Matz" Matsumoto <[email protected]>2013-01-23 05:11:54 -0800
commit8961a7880830f403c882113dcc1e754862da67ea (patch)
tree083982740b7968a98df18a42796783ebd6747ed8 /src
parentb79e1ecbaac37dccd3b508bc237d51aa1bc17182 (diff)
parent310b0dce8fa1e3f98b2184c2b6c1a0f091c2d4eb (diff)
downloadmruby-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.c9
-rw-r--r--src/state.c3
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);