diff options
| author | take_cheeze <[email protected]> | 2014-06-06 00:54:37 +0900 |
|---|---|---|
| committer | take_cheeze <[email protected]> | 2014-06-06 01:04:12 +0900 |
| commit | 4c1fb65d8523960ab55be5bfa6ac7a081dc33c61 (patch) | |
| tree | 363c14e02717a9034ab58288b4cd616183c62bc7 /src/state.c | |
| parent | b1dd57efa1a1b292021bfe7ba7e4ac14e0b151b9 (diff) | |
| download | mruby-4c1fb65d8523960ab55be5bfa6ac7a081dc33c61.tar.gz mruby-4c1fb65d8523960ab55be5bfa6ac7a081dc33c61.zip | |
Release `mrb->atexit_stack` on `mrb_close`.
Diffstat (limited to 'src/state.c')
| -rw-r--r-- | src/state.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/state.c b/src/state.c index ee03c8a38..ac9f88088 100644 --- a/src/state.c +++ b/src/state.c @@ -221,10 +221,12 @@ mrb_free_context(mrb_state *mrb, struct mrb_context *c) void mrb_close(mrb_state *mrb) { - mrb_int i; - - for (i = mrb->atexit_stack_len; i > 0; --i) { - mrb->atexit_stack[i - 1](mrb); + if (mrb->atexit_stack_len > 0) { + mrb_int i; + for (i = mrb->atexit_stack_len; i > 0; --i) { + mrb->atexit_stack[i - 1](mrb); + } + mrb_free(mrb, mrb->atexit_stack); } /* free */ |
