From 826fe1bc36a298f682de51ea29d949dcc15e42ab Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 2 Dec 2020 09:46:08 +0900 Subject: Fixed memory leaks from `codegen_error`. --- mrbgems/mruby-compiler/core/codegen.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'mrbgems/mruby-compiler') diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index bef631ba7..4c67988e4 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -116,8 +116,15 @@ codegen_error(codegen_scope *s, const char *message) while (s->prev) { codegen_scope *tmp = s->prev; mrb_free(s->mrb, s->iseq); + for (int i=0; iirep->plen; i++) { + mrb_pool_value *pv = &s->pool[i]; + if ((pv->tt & 0x3) == IREP_TT_STR) { + mrb_free(s->mrb, (void*)pv->u.str); + } + } mrb_free(s->mrb, s->pool); mrb_free(s->mrb, s->syms); + mrb_free(s->mrb, s->catch_table); if (s->reps) { /* copied from mrb_irep_free() in state.c */ for (i=0; iirep->rlen; i++) { -- cgit v1.2.3