luaur_code_gen/functions/
try_find_upvalue_name.rs1use luaur_vm::macros::getstr::getstr;
2
3macro_rules! CODEGEN_ASSERT {
4 ($expr:expr) => {
5 assert!($expr);
6 };
7}
8
9pub unsafe fn try_find_upvalue_name(
10 proto: *const luaur_vm::records::proto::Proto,
11 upval: i32,
12) -> *const core::ffi::c_char {
13 if !(*proto).upvalues.is_null() {
14 CODEGEN_ASSERT!(upval < (*proto).sizeupvalues as i32);
15
16 let upvalue = *(*proto).upvalues.add(upval as usize);
17 if !upvalue.is_null() {
18 return getstr(upvalue as *const _);
19 }
20 }
21
22 core::ptr::null()
23}