Skip to main content

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}