luaur_vm/functions/
getfuncname.rs1use crate::macros::getstr::getstr;
2use crate::records::closure::Closure;
3use crate::type_aliases::proto::Proto;
4
5pub fn getfuncname(cl: *mut Closure) -> *const core::ffi::c_char {
6 unsafe {
7 if cl.is_null() {
8 return core::ptr::null();
9 }
10
11 if (*cl).isC != 0 {
12 let c_debugname = (&(*cl).inner.c).debugname;
13 if !c_debugname.is_null() {
14 c_debugname
15 } else {
16 core::ptr::null()
17 }
18 } else {
19 let p: *mut Proto = (&(*cl).inner.l).p;
20
21 if !p.is_null() {
22 let p_debugname = (&(*p)).debugname;
23 if !p_debugname.is_null() {
24 getstr(p_debugname)
25 } else {
26 core::ptr::null()
27 }
28 } else {
29 core::ptr::null()
30 }
31 }
32 }
33}