luaur_vm/functions/enumtopointer.rs
1use crate::enums::lua_type::lua_Type;
2use crate::macros::gco_2_u::gco2u;
3use crate::records::gc_object::GCObject;
4use core::ffi::c_void;
5
6#[inline]
7pub fn enumtopointer(gco: *mut GCObject) -> *mut c_void {
8 unsafe {
9 if (*gco).gch.tt == (lua_Type::LUA_TUSERDATA as u8) {
10 let u = gco2u!(gco);
11 (*u).data.as_mut_ptr() as *mut c_void
12 } else {
13 gco as *mut c_void
14 }
15 }
16}