luaur_vm/macros/
lua_c_objectbarrier.rs1use crate::functions::lua_c_barrierback::lua_c_barrierback;
2use crate::macros::isblack::isblack;
3use crate::macros::obj_2_gco::obj2gco;
4use crate::records::gc_object::GCObject;
5
6#[allow(non_snake_case)]
7#[macro_export]
8macro_rules! luaC_objectbarrier {
9 ($l:expr) => {{
10 let obj = $crate::macros::obj_2_gco::obj2gco!($l);
11 if $crate::macros::isblack::isblack!(obj) {
12 unsafe {
13 $crate::functions::lua_c_barrierback::lua_c_barrierback(
14 core::ptr::null_mut(),
15 obj as *mut $crate::records::gc_object::GCObject,
16 &mut (*($l)).gclist,
17 )
18 }
19 }
20 }};
21}
22
23pub use luaC_objectbarrier;