Skip to content

Commit a2a1601

Browse files
committed
simplify wasm3_engine
1 parent db65a24 commit a2a1601

File tree

1 file changed

+2
-28
lines changed

1 file changed

+2
-28
lines changed

test/utils/wasm3_engine.cpp

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -40,33 +40,6 @@ class Wasm3Engine final : public WasmEngine
4040

4141
namespace
4242
{
43-
M3ValueType translate_valtype(char input)
44-
{
45-
if (input == 'i')
46-
return M3ValueType::c_m3Type_i32;
47-
else if (input == 'I')
48-
return M3ValueType::c_m3Type_i64;
49-
else
50-
throw std::runtime_error{"invalid type"};
51-
}
52-
53-
std::pair<std::vector<M3ValueType>, std::vector<M3ValueType>> translate_signature(
54-
std::string_view signature)
55-
{
56-
const auto delimiter_pos = signature.find(':');
57-
assert(delimiter_pos != std::string_view::npos);
58-
const auto inputs = signature.substr(0, delimiter_pos);
59-
const auto outputs = signature.substr(delimiter_pos + 1);
60-
61-
std::vector<M3ValueType> input_types;
62-
std::vector<M3ValueType> output_types;
63-
std::transform(
64-
std::begin(inputs), std::end(inputs), std::back_inserter(input_types), translate_valtype);
65-
std::transform(std::begin(outputs), std::end(outputs), std::back_inserter(output_types),
66-
translate_valtype);
67-
return {std::move(input_types), std::move(output_types)};
68-
}
69-
7043
const void* env_adler32(
7144
IM3Runtime /*runtime*/, IM3ImportContext /*context*/, uint64_t* stack, void* mem)
7245
{
@@ -152,7 +125,8 @@ std::optional<WasmEngine::FuncRef> Wasm3Engine::find_function(
152125

153126
std::vector<M3ValueType> inputs;
154127
std::vector<M3ValueType> outputs;
155-
std::tie(inputs, outputs) = translate_signature(signature);
128+
std::tie(inputs, outputs) = translate_function_signature<M3ValueType, M3ValueType::c_m3Type_i32,
129+
M3ValueType::c_m3Type_i64>(signature);
156130

157131
if (inputs.size() != m3_GetArgCount(function))
158132
return std::nullopt;

0 commit comments

Comments
 (0)