upd: fix some bugs

This commit is contained in:
2023-11-09 19:26:57 +08:00
parent b423649d7b
commit 995aaa1c18
2 changed files with 30 additions and 22 deletions

View File

@ -109,6 +109,7 @@ std::any FucntionContainer::CallFunction(
if (i >= func.para_list.size()) break;
Variables.WriteVariable(func.para_list[i].name, args[p_src].value, true);
args_with_data.insert(func.para_list[i].name);
p_src++;
}
for (int i = 0; i < func.para_list.size(); i++) {
while (i < func.para_list.size() &&
@ -124,8 +125,9 @@ std::any FucntionContainer::CallFunction(
EvalVisitor vis;
std::any res = vis.visit(func.code_address);
Variables.DestroyFrame();
// std::cerr << "function called " << std::endl;
FlowType *flow = std::any_cast<FlowType>(&res);
if (!flow) {
if (flow) {
if (flow->ReturnValueLists.size() == 0)
return NoneType();
else if (flow->ReturnValueLists.size() == 1)
@ -133,5 +135,6 @@ std::any FucntionContainer::CallFunction(
else
return flow->ReturnValueLists;
}
// std::cerr<<"Return value isn't FlowType"<<std::endl;
return NoneType();
}