Skip to main content

luaur_vm/macros/
lua_d_checkstackfornewci.rs

1use crate::functions::lua_d_reallocstack::lua_d_reallocstack;
2use crate::macros::condhardstacktests::condhardstacktests;
3use crate::macros::extra_stack::EXTRA_STACK;
4use crate::macros::getgrownstacksize::getgrownstacksize;
5use crate::macros::stacklimitreached::stacklimitreached;
6
7use crate::records::lua_state::LuaState;
8use core::ffi::c_int;
9
10#[allow(non_snake_case)]
11#[inline]
12pub fn luaD_checkstackfornewci(L: *mut LuaState, n: c_int) {
13    unsafe {
14        if stacklimitreached(L, n) {
15            lua_d_reallocstack(L, getgrownstacksize(L, n), 1);
16        } else {
17            condhardstacktests!(lua_d_reallocstack(L, (*L).stacksize - EXTRA_STACK, 1));
18        }
19    }
20}