From 27bdda2e01d83a5b4023a729ed2a427f1ee9fe41 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Mon, 1 Feb 2016 10:39:27 -0800 Subject: fix call_indirect s2wasm parsing order #162 --- src/s2wasm.h | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/s2wasm.h b/src/s2wasm.h index f1cc89586..8b6aabeb7 100644 --- a/src/s2wasm.h +++ b/src/s2wasm.h @@ -671,16 +671,12 @@ class S2WasmBuilder { // indirect call auto indirect = allocator.alloc(); Name assign = getAssign(); - indirect->target = getInput(); + int num = getNumInputs(); + auto inputs = getInputs(num); + indirect->target = inputs[0]; indirect->type = type; - skipWhitespace(); - if (*s == ',') { - skipComma(); - int num = getNumInputs(); - auto inputs = getInputs(num); - for (int i = 0; i < num; i++) { - indirect->operands.push_back(inputs[i]); - } + for (int i = 1; i < num; i++) { + indirect->operands.push_back(inputs[i]); } setOutput(indirect, assign); auto typeName = cashew::IString((std::string("FUNCSIG_") + getSig(indirect)).c_str(), false); -- cgit v1.2.3