luaur_vm/functions/
lua_s_bufstart.rs1use crate::functions::lua_m_toobig::lua_m_toobig;
2use crate::macros::atom_undef::ATOM_UNDEF;
3use crate::macros::lua_c_init::luaC_init;
4use crate::macros::maxssize::MAXSSIZE;
5use crate::macros::sizestring::sizestring;
6use crate::records::t_string::TString;
7use crate::type_aliases::lua_state::lua_State;
8use core::ffi::c_int;
9
10#[allow(non_snake_case)]
11pub unsafe fn luaS_bufstart(l: *mut lua_State, size: usize) -> *mut TString {
12 if size > MAXSSIZE as usize {
13 lua_m_toobig(l);
14 }
15
16 let ts = crate::functions::lua_m_newgco::luaM_newgco_(l, sizestring(size), (*l).activememcat)
17 as *mut TString;
18
19 luaC_init!(
20 l,
21 ts,
22 crate::enums::lua_type::lua_Type::LUA_TSTRING as c_int
23 );
24 (*ts).atom = ATOM_UNDEF as i16;
25 (*ts).hash = 0;
26 (*ts).len = size as u32;
27 (*ts).next = core::ptr::null_mut();
28
29 ts
30}
31
32#[allow(unused_imports)]
33pub use luaS_bufstart as lua_s_bufstart;