From 679ed0b961f71f6b911b27b28c22e89a9b162553 Mon Sep 17 00:00:00 2001 From: Rerumu Date: Sun, 17 Oct 2021 14:07:20 -0400 Subject: [PATCH] Fixed CallIndirect not fetching correct arity --- src/backend/translation/level_1.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/backend/translation/level_1.rs b/src/backend/translation/level_1.rs index a235915..6f1392f 100644 --- a/src/backend/translation/level_1.rs +++ b/src/backend/translation/level_1.rs @@ -239,9 +239,10 @@ impl<'a> Body<'a> { Instruction::CallIndirect(i, t) => { let index = func.var_name_of(self.reg.pop(1)); let name = format!("TABLE_LIST[{}][{}]", t, index); - let arity = m.arity_of(*i as usize); + let types = m.parent.type_section().unwrap().types(); + let arity = Arity::from_index(types, *i); - self.gen_call(&name, func, arity, w) + self.gen_call(&name, func, &arity, w) } Instruction::Drop => { self.reg.pop(1);