*fixed an infinity loop bug with variable arguments handling; *fixed a memory leak with error routine.

This commit is contained in:
paladin-t 2016-01-18 15:51:09 +08:00
parent 4792ac7a93
commit 69d26f6006
2 changed files with 4 additions and 2 deletions

View File

@ -3324,6 +3324,8 @@ int _pop_arg(mb_interpreter_t* s, _ls_node_t** l, mb_value_t* va, unsigned ca, u
_internal_object_to_public_value(obj, arg);
_destroy_object_capsule_only(obj, 0);
}
} else {
arg->type = MB_DT_UNKNOWN;
}
} else {
result = pop_arg(s, (void**)l, va, ca, ia, r, arg);
@ -3487,7 +3489,7 @@ int _eval_script_routine(mb_interpreter_t* s, _ls_node_t** l, mb_value_t* va, un
else
_pop_weak_scope(s, running);
goto _exit;
goto _error;
}
running = _pop_weak_scope(s, running);
@ -3584,7 +3586,7 @@ int _eval_lambda_routine(mb_interpreter_t* s, _ls_node_t** l, mb_value_t* va, un
if(result != MB_FUNC_OK) {
_unlink_lambda_scope_chain(s, &r->func.lambda, true);
goto _exit;
goto _error;
}
running = _unlink_lambda_scope_chain(s, &r->func.lambda, true);

Binary file not shown.