luaur_code_gen/functions/
try_find_local.rs1use core::ffi::c_void;
2
3#[repr(C)]
4pub struct Proto {
5 pub sizelocvars: i32,
6 pub locvars: *const LocVar,
7}
8
9#[repr(C)]
10pub struct LocVar {
11 pub reg: i32,
12 pub startpc: i32,
13 pub endpc: i32,
14}
15
16pub unsafe fn try_find_local(proto: *const Proto, reg: i32, pcpos: i32) -> *const LocVar {
17 let proto = &*proto;
18
19 for i in 0..proto.sizelocvars {
20 let local = &*proto.locvars.add(i as usize);
21
22 if reg == local.reg && pcpos >= local.startpc && pcpos < local.endpc {
23 return local as *const LocVar;
24 }
25 }
26
27 core::ptr::null::<LocVar>()
28}