Skip to main content

luaur_vm/macros/
stacklimitreached.rs

1use crate::records::lua_state::lua_State;
2use crate::type_aliases::t_value::TValue;
3
4#[allow(non_snake_case)]
5pub fn stacklimitreached(L: *mut lua_State, n: core::ffi::c_int) -> bool {
6    unsafe {
7        let stack_last = (*L).stack_last as *mut core::ffi::c_char;
8        let top = (*L).top as *mut core::ffi::c_char;
9        let diff = stack_last as usize - top as usize;
10        let threshold = (n as usize) * (core::mem::size_of::<TValue>() as usize);
11        diff <= threshold
12    }
13}