From 9ca2c60021ee6233613733b21f8f837ace80c116 Mon Sep 17 00:00:00 2001 From: Rerumu Date: Thu, 16 Jun 2022 14:06:48 -0400 Subject: [PATCH] Fix function name translation offset --- codegen-luajit/src/translator.rs | 12 ++++++------ codegen-luau/src/translator.rs | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/codegen-luajit/src/translator.rs b/codegen-luajit/src/translator.rs index 4f9a70d..4bfec65 100644 --- a/codegen-luajit/src/translator.rs +++ b/codegen-luajit/src/translator.rs @@ -264,7 +264,7 @@ fn write_memory_used(func_list: &[FuncData], w: &mut dyn Write) -> Result Result<()> { +fn write_func_start(wasm: &Module, index: u32, w: &mut dyn Write) -> Result<()> { let opt = wasm .names_section() .and_then(NameSection::functions) @@ -273,10 +273,10 @@ fn write_func_start(wasm: &Module, index: u32, offset: u32, w: &mut dyn Write) - write!(w, "FUNC_LIST")?; if let Some(name) = opt { - write!(w, "--[[{name}]]")?; + write!(w, "--[[ {name} ]]")?; } - write!(w, "[{}] =", index + offset) + write!(w, "[{index}] =") } fn write_func_list( @@ -285,10 +285,10 @@ fn write_func_list( func_list: &[FuncData], w: &mut dyn Write, ) -> Result<()> { - let offset = type_info.len_ex().try_into().unwrap(); - func_list.iter().enumerate().try_for_each(|(i, v)| { - write_func_start(wasm, i.try_into().unwrap(), offset, w)?; + let index = (type_info.len_ex() + i).try_into().unwrap(); + + write_func_start(wasm, index, w)?; v.write(&mut Manager::default(), w) }) diff --git a/codegen-luau/src/translator.rs b/codegen-luau/src/translator.rs index c2e6037..a87c817 100644 --- a/codegen-luau/src/translator.rs +++ b/codegen-luau/src/translator.rs @@ -260,7 +260,7 @@ fn write_memory_used(func_list: &[FuncData], w: &mut dyn Write) -> Result Result<()> { +fn write_func_start(wasm: &Module, index: u32, w: &mut dyn Write) -> Result<()> { let opt = wasm .names_section() .and_then(NameSection::functions) @@ -269,10 +269,10 @@ fn write_func_start(wasm: &Module, index: u32, offset: u32, w: &mut dyn Write) - write!(w, "FUNC_LIST")?; if let Some(name) = opt { - write!(w, "--[[{name}]]")?; + write!(w, "--[[ {name} ]]")?; } - write!(w, "[{}] =", index + offset) + write!(w, "[{index}] =") } fn write_func_list( @@ -281,10 +281,10 @@ fn write_func_list( func_list: &[FuncData], w: &mut dyn Write, ) -> Result<()> { - let offset = type_info.len_ex().try_into().unwrap(); - func_list.iter().enumerate().try_for_each(|(i, v)| { - write_func_start(wasm, i.try_into().unwrap(), offset, w)?; + let index = (type_info.len_ex() + i).try_into().unwrap(); + + write_func_start(wasm, index, w)?; v.write(&mut Manager::default(), w) })