luaur_code_gen/methods/
unwind_builder_dwarf_2_finish_function.rs1use crate::functions::align_position::align_position;
2use crate::functions::writeu_32::writeu_32;
3use crate::records::unwind_builder_dwarf_2::UnwindBuilderDwarf2;
4
5impl UnwindBuilderDwarf2 {
6 pub fn finish_function(&mut self, begin_offset: u32, end_offset: u32) {
7 if let Some(last_func) = self.unwind_functions.last_mut() {
8 last_func.begin_offset = begin_offset;
9 last_func.end_offset = end_offset;
10 }
11
12 luaur_common::LUAU_ASSERT!(self.fde_entry_start != core::ptr::null_mut());
13
14 unsafe {
15 self.pos = align_position(self.fde_entry_start, self.pos);
16 let length = (self.pos as usize - self.fde_entry_start as usize - 4) as u32;
17 writeu_32(self.fde_entry_start, length);
18 }
19 }
20}