Skip to content

Commit

Permalink
Mark execute() with noexcept
Browse files Browse the repository at this point in the history
chfast committed Aug 23, 2020

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent e8568f7 commit e2811aa
Showing 2 changed files with 8 additions and 7 deletions.
11 changes: 6 additions & 5 deletions lib/fizzy/execute.cpp
Original file line number Diff line number Diff line change
@@ -271,8 +271,8 @@ void branch(const Code& code, OperandStack& stack, const Instr*& pc, const uint8
}

template <class F>
bool invoke_function(
const FuncType& func_type, const F& func, Instance& instance, OperandStack& stack, int depth)
bool invoke_function(const FuncType& func_type, const F& func, Instance& instance,
OperandStack& stack, int depth) noexcept
{
const auto num_args = func_type.inputs.size();
assert(stack.size() >= num_args);
@@ -296,9 +296,9 @@ bool invoke_function(
}

inline bool invoke_function(const FuncType& func_type, uint32_t func_idx, Instance& instance,
OperandStack& stack, int depth)
OperandStack& stack, int depth) noexcept
{
const auto func = [func_idx](Instance& _instance, span<const Value> args, int _depth) {
const auto func = [func_idx](Instance& _instance, span<const Value> args, int _depth) noexcept {
return execute(_instance, func_idx, args, _depth);
};
return invoke_function(func_type, func, instance, stack, depth);
@@ -801,7 +801,8 @@ std::unique_ptr<Instance> instantiate(Module module,
return instance;
}

ExecutionResult execute(Instance& instance, FuncIdx func_idx, span<const Value> args, int depth)
ExecutionResult execute(
Instance& instance, FuncIdx func_idx, span<const Value> args, int depth) noexcept
{
assert(depth >= 0);
if (depth > CallStackLimit)
4 changes: 2 additions & 2 deletions lib/fizzy/execute.hpp
Original file line number Diff line number Diff line change
@@ -105,10 +105,10 @@ std::unique_ptr<Instance> instantiate(Module module,

// Execute a function on an instance.
ExecutionResult execute(
Instance& instance, FuncIdx func_idx, span<const Value> args, int depth = 0);
Instance& instance, FuncIdx func_idx, span<const Value> args, int depth = 0) noexcept;

inline ExecutionResult execute(
Instance& instance, FuncIdx func_idx, std::initializer_list<Value> args)
Instance& instance, FuncIdx func_idx, std::initializer_list<Value> args) noexcept
{
return execute(instance, func_idx, span<const Value>{args});
}

0 comments on commit e2811aa

Please sign in to comment.