luaur_vm/functions/
enumupval.rs1use crate::functions::enumedge::enumedge;
2use crate::functions::enumnode::enumnode;
3use crate::macros::gcvalue::gcvalue;
4use crate::macros::iscollectable::iscollectable;
5use crate::macros::obj_2_gco::obj2gco;
6use crate::records::enum_context::EnumContext;
7use crate::records::gc_object::GCObject;
8use crate::type_aliases::up_val::UpVal;
9
10#[allow(non_snake_case)]
11pub(crate) unsafe fn enumupval(ctx: *mut EnumContext, uv: *mut UpVal) {
12 enumnode(
13 ctx,
14 obj2gco!(uv as *mut GCObject),
15 core::mem::size_of::<UpVal>(),
16 core::ptr::null(),
17 );
18
19 if iscollectable!((*uv).v) {
20 enumedge(
21 ctx,
22 obj2gco!(uv as *mut GCObject),
23 gcvalue!((*uv).v),
24 b"value\0" as *const _ as *const core::ffi::c_char,
25 );
26 }
27}