From 583cc5ae53b00947c4edd084a7e9213e385f19dd Mon Sep 17 00:00:00 2001 From: Wang Renxin Date: Tue, 8 Sep 2015 13:37:44 +0800 Subject: [PATCH] *fixed a sub routine invoking bug without leading CALL statement or result receiver. --- core/my_basic.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/my_basic.c b/core/my_basic.c index fc04c0d..2984049 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -3599,6 +3599,11 @@ int _execute_statement(mb_interpreter_t* s, _ls_node_t** l) { case _DT_STRING: _handle_error_on_obj(s, SE_RN_INVALID_EXPRESSION, 0, DON(ast), MB_FUNC_ERR, _exit, result); + break; + case _DT_ROUTINE: + ast = ast->prev; + result = _core_call(s, (void**)(&ast)); + break; default: break; @@ -6134,7 +6139,8 @@ int _core_call(mb_interpreter_t* s, void** l) { _eval_routine(s, &ast, routine); - ast = ast->prev; + if(ast) + ast = ast->prev; *l = ast;