From 8b0e99c75514703804b527ee32322e588e1bd534 Mon Sep 17 00:00:00 2001 From: tony Date: Tue, 11 Aug 2015 13:27:17 +0800 Subject: [PATCH] fixed a wrong IF trunk processing bug, thanks to irony for pointing it out; fixed a crash bug with an invalid IF statement. --- HISTORY | 4 ++++ core/my_basic.c | 11 +++++++---- output/my_basic_mac | Bin 88344 -> 88344 bytes resource/my_basic.rc | 8 ++++---- shell/main.c | 2 +- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/HISTORY b/HISTORY index 677d855..40cff9c 100755 --- a/HISTORY +++ b/HISTORY @@ -1,3 +1,7 @@ +Aug. 11 2015 +Fixed a wrong IF trunk processing bug, thanks to irony for pointing it out +Fixed a crash bug with an invalid IF statement + Jul. 27 2015 Fixed a memory leak with mb_pop_xxx, thanks to Daniel Haensse for pointing it out diff --git a/core/my_basic.c b/core/my_basic.c index 049c93d..982cb22 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -78,7 +78,7 @@ extern "C" { /** Macros */ #define _VER_MAJOR 1 #define _VER_MINOR 1 -#define _VER_REVISION 60 +#define _VER_REVISION 61 #define _MB_VERSION ((_VER_MAJOR * 0x01000000) + (_VER_MINOR * 0x00010000) + (_VER_REVISION)) /* Uncomment this line to treat warnings as error */ @@ -3166,7 +3166,7 @@ int _skip_if_chunk(mb_interpreter_t* s, _ls_node_t** l) { obj = (_object_t*)(ast->data); *l = ast; ast = ast->next; - } while(!_IS_FUNC(obj, _core_if) && !_IS_FUNC(obj, _core_elseif) && !_IS_FUNC(obj, _core_else)); + } while(!_IS_FUNC(obj, _core_if) && !_IS_FUNC(obj, _core_elseif) && !_IS_FUNC(obj, _core_else) && !_IS_FUNC(obj, _core_endif)); _exit: return result; @@ -5021,10 +5021,12 @@ _elseif: _skip_if_chunk(s, &ast); } if(multi_line && ast && _IS_FUNC(ast->data, _core_elseif)) { - if(ast) ast = ast->next; + ast = ast->next; goto _elseif; } + if(multi_line && ast && _IS_FUNC(ast->data, _core_endif)) + goto _exit; result = _skip_to(s, &ast, _core_else, _DT_EOS); if(result != MB_FUNC_OK) @@ -5057,7 +5059,8 @@ _exit: if(multi_line) result = _skip_to(s, &ast, _core_endif, _DT_NIL); - _destroy_object(val, 0); + if(val->type != _DT_ANY) + _destroy_object(val, 0); *l = ast; diff --git a/output/my_basic_mac b/output/my_basic_mac index b0e0687e83599b16d9b5c10a1e58228ddd267c14..a5f85f3b378e8262a4f9689e45f6cdbf85b8bd28 100755 GIT binary patch delta 26503 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 I@{jKS2fU$%oB#j- delta 26462 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 ++i) { - printf("%ld]%s\n", i + 1, c->lines[i]); + printf("%ld]%s", i + 1, c->lines[i]); } } else { long i = 0;