Skip to main content

luaur_code_gen/functions/
try_find_local_name.rs

1use luaur_vm::macros::getstr::getstr;
2use luaur_vm::records::proto::Proto;
3
4pub unsafe fn try_find_local_name(
5    proto: *const Proto,
6    reg: core::ffi::c_int,
7    pcpos: core::ffi::c_int,
8) -> *const core::ffi::c_char {
9    for i in 0..(*proto).sizelocvars {
10        let local = &*(*proto).locvars.add(i as usize);
11
12        if reg == local.reg as core::ffi::c_int && pcpos >= local.startpc && pcpos < local.endpc {
13            return if local.varname.is_null() {
14                core::ptr::null()
15            } else {
16                getstr(local.varname)
17            };
18        }
19    }
20
21    core::ptr::null()
22}