From a55e3e7d07dec4efc2bf33e2963ef8523d6eff9d Mon Sep 17 00:00:00 2001 From: paladin-t Date: Fri, 25 Dec 2015 10:52:27 +0800 Subject: [PATCH] *fixed a memory leak in class definition. --- HISTORY | 3 +++ core/my_basic.c | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/HISTORY b/HISTORY index 8cdd66c..510da8a 100755 --- a/HISTORY +++ b/HISTORY @@ -1,3 +1,6 @@ +Dec. 25 2015 +Fixed a memory leak in class definition + Dec. 24 2015 Improved defining a class in C Added a pair of mb_get_class_userdata/mb_set_class_userdata functions diff --git a/core/my_basic.c b/core/my_basic.c index 7f4ba41..bcdda0f 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -10881,7 +10881,7 @@ int _core_class(mb_interpreter_t* s, void** l) { s->last_error = SE_EA_EXTENDED_ABORT; _handle_error_now(s, s->last_error, s->last_error_func, result); - goto _exit; + goto _pop_exit; } ast = (_ls_node_t*)(*l); if(!ast) break; @@ -10896,10 +10896,11 @@ int _core_class(mb_interpreter_t* s, void** l) { ast = ast->next; } -_exit: +_pop_exit: if(result != MB_FUNC_OK) _pop_scope(s); +_exit: *l = ast; return result;