luaur_vm/functions/
lua_g_isnative.rs1use crate::macros::lua_callinfo_native::LUA_CALLINFO_NATIVE;
2use crate::records::call_info::CallInfo;
3use crate::records::lua_state::lua_State;
4use crate::type_aliases::lua_state::lua_State as LuaState;
5
6#[no_mangle]
7pub unsafe fn luaG_isnative(L: *mut lua_State, level: core::ffi::c_int) -> core::ffi::c_int {
8 if (level as u32) >= ((unsafe { (*L).ci }).offset_from(unsafe { (*L).base_ci }) as u32) {
9 return 0;
10 }
11
12 let ci = unsafe { (*L).ci.offset(-level as isize) };
13 if (unsafe { (*ci).flags } & LUA_CALLINFO_NATIVE as u32) != 0 {
14 1
15 } else {
16 0
17 }
18}