luaur_vm/functions/
lua_f_getlocal.rs1use core::ffi::c_int;
2use core::ptr;
3
4use crate::type_aliases::loc_var::LocVar;
5use crate::type_aliases::proto::Proto;
6
7#[allow(non_snake_case)]
8pub fn luaF_getlocal(func: *const Proto, mut local_number: c_int, pc: c_int) -> *const LocVar {
9 if func.is_null() {
10 return ptr::null();
11 }
12
13 unsafe {
14 for i in 0..(*func).sizelocvars {
15 let loc = &*(*func).locvars.add(i as usize);
16 if pc >= loc.startpc && pc < loc.endpc {
17 local_number -= 1;
18 if local_number == 0 {
19 return loc as *const LocVar;
20 }
21 }
22 }
23 }
24
25 ptr::null()
26}