diff options
| author | Yuichiro MASUI <[email protected]> | 2013-01-22 20:18:48 +0900 |
|---|---|---|
| committer | Yuichiro MASUI <[email protected]> | 2013-01-22 20:18:48 +0900 |
| commit | 310b0dce8fa1e3f98b2184c2b6c1a0f091c2d4eb (patch) | |
| tree | df4a8cc57c2d5b52fe20aa3fafbc6508799e3512 /doc | |
| parent | cc2e4e73deea917ffd0c9ce6ad2840455df7b60b (diff) | |
| download | mruby-310b0dce8fa1e3f98b2184c2b6c1a0f091c2d4eb.tar.gz mruby-310b0dce8fa1e3f98b2184c2b6c1a0f091c2d4eb.zip | |
Added finalizer of mrbgems
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/mrbgems/README.md | 15 | ||||
| -rw-r--r-- | doc/mrbgems/c_and_ruby_extension_example/src/example.c | 5 | ||||
| -rw-r--r-- | doc/mrbgems/c_extension_example/src/example.c | 5 |
3 files changed, 25 insertions, 0 deletions
diff --git a/doc/mrbgems/README.md b/doc/mrbgems/README.md index 9e930d8b2..fb27aa37b 100644 --- a/doc/mrbgems/README.md +++ b/doc/mrbgems/README.md @@ -106,6 +106,21 @@ mrb_c_extension_example_gem_init(mrb_state* mrb) { } ``` +### Finalize + +mrbgems expects that you have implemented a C method called +```mrb_YOURGEMNAME_gem_final(mrb_state)```. ```YOURGEMNAME``` will be replaced +by the name of your GEM. If you call your GEM *c_extension_example*, your +finalizer method could look like this: + +``` +void +mrb_c_extension_example_gem_final(mrb_state* mrb) { + free(someone); +} +``` + + ### Example ``` diff --git a/doc/mrbgems/c_and_ruby_extension_example/src/example.c b/doc/mrbgems/c_and_ruby_extension_example/src/example.c index 3d3cb20c9..7651ae5c0 100644 --- a/doc/mrbgems/c_and_ruby_extension_example/src/example.c +++ b/doc/mrbgems/c_and_ruby_extension_example/src/example.c @@ -13,3 +13,8 @@ mrb_c_and_ruby_extension_example_gem_init(mrb_state* mrb) { struct RClass *class_cextension = mrb_define_module(mrb, "CRubyExtension"); mrb_define_class_method(mrb, class_cextension, "c_method", mrb_c_method, ARGS_NONE()); } + +void +mrb_c_and_ruby_extension_example_gem_final(mrb_state* mrb) { + // finalizer +} diff --git a/doc/mrbgems/c_extension_example/src/example.c b/doc/mrbgems/c_extension_example/src/example.c index 11f54e6d2..fa166186d 100644 --- a/doc/mrbgems/c_extension_example/src/example.c +++ b/doc/mrbgems/c_extension_example/src/example.c @@ -13,3 +13,8 @@ mrb_c_extension_example_gem_init(mrb_state* mrb) { struct RClass *class_cextension = mrb_define_module(mrb, "CExtension"); mrb_define_class_method(mrb, class_cextension, "c_method", mrb_c_method, ARGS_NONE()); } + +void +mrb_c_extension_example_gem_final(mrb_state* mrb) { + // finalizer +} |
