From 4c1fb65d8523960ab55be5bfa6ac7a081dc33c61 Mon Sep 17 00:00:00 2001 From: take_cheeze Date: Fri, 6 Jun 2014 00:54:37 +0900 Subject: Release `mrb->atexit_stack` on `mrb_close`. --- src/state.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src') 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 */ -- cgit v1.2.3