Skip to content

Commit

Permalink
Pass only number of args to invoke_function()
Browse files Browse the repository at this point in the history
  • Loading branch information
chfast authored and axic committed May 30, 2022
1 parent 90bd063 commit 3ccac17
Showing 1 changed file with 6 additions and 7 deletions.
13 changes: 6 additions & 7 deletions lib/fizzy/execute.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -510,10 +510,9 @@ void branch(const Code& code, OperandStack& stack, const uint8_t*& pc, uint32_t
stack.drop(stack_drop);
}

inline bool invoke_function(const FuncType& func_type, uint32_t func_idx, Instance& instance,
inline bool invoke_function(size_t num_args, uint32_t func_idx, Instance& instance,
OperandStack& stack, ExecutionContext& ctx) noexcept
{
const auto num_args = func_type.inputs.size();
assert(stack.size() >= num_args);
const auto call_args = stack.rend() - num_args;

Expand All @@ -525,7 +524,6 @@ inline bool invoke_function(const FuncType& func_type, uint32_t func_idx, Instan
stack.drop(num_args);

// NOTE: validation ensures there is at most 1 output value
assert(func_type.outputs.size() == (ret.has_value ? 1 : 0));
// Push back the result
if (ret.has_value)
stack.push(ret.value);
Expand Down Expand Up @@ -629,9 +627,10 @@ ExecutionResult execute(
case Instr::call:
{
const auto called_func_idx = read<uint32_t>(pc);
const auto& called_func_type = instance.module->get_function_type(called_func_idx);
const auto called_func_num_args =
instance.module->get_function_type(called_func_idx).inputs.size();

if (!invoke_function(called_func_type, called_func_idx, instance, stack, ctx))
if (!invoke_function(called_func_num_args, called_func_idx, instance, stack, ctx))
goto trap;
break;
}
Expand All @@ -657,8 +656,8 @@ ExecutionResult execute(
if (expected_type != actual_type)
goto trap;

if (!invoke_function(
actual_type, called_func.func_idx, *called_func.instance, stack, ctx))
if (!invoke_function(actual_type.inputs.size(), called_func.func_idx,
*called_func.instance, stack, ctx))
goto trap;
break;
}
Expand Down

0 comments on commit 3ccac17

Please sign in to comment.