mirror of
https://github.com/mlua-rs/mlua
synced 2026-06-08 16:05:43 +00:00
+2
-2
@@ -961,9 +961,9 @@ impl RawLua {
|
||||
#[cfg(feature = "luau")]
|
||||
let extra_init = None;
|
||||
#[cfg(not(feature = "luau"))]
|
||||
let extra_init: Option<fn(*mut ffi::lua_State) -> Result<()>> = Some(|state| {
|
||||
let extra_init: Option<fn(*mut ffi::lua_State, c_int) -> Result<()>> = Some(|state, mt_idx| {
|
||||
ffi::lua_pushcfunction(state, crate::util::userdata_destructor::<UserDataStorage<T>>);
|
||||
rawset_field(state, -2, "__gc")
|
||||
rawset_field(state, mt_idx, "__gc")
|
||||
});
|
||||
|
||||
init_userdata_metatable(
|
||||
|
||||
@@ -152,7 +152,7 @@ pub(crate) unsafe fn init_userdata_metatable(
|
||||
field_getters: Option<c_int>,
|
||||
field_setters: Option<c_int>,
|
||||
methods: Option<c_int>,
|
||||
extra_init: Option<fn(*mut ffi::lua_State) -> Result<()>>,
|
||||
extra_init: Option<fn(*mut ffi::lua_State, c_int) -> Result<()>>,
|
||||
) -> Result<()> {
|
||||
if field_getters.is_some() || methods.is_some() {
|
||||
// Push `__index` generator function
|
||||
@@ -197,7 +197,7 @@ pub(crate) unsafe fn init_userdata_metatable(
|
||||
|
||||
// Additional initialization
|
||||
if let Some(extra_init) = extra_init {
|
||||
extra_init(state)?;
|
||||
extra_init(state, metatable)?;
|
||||
}
|
||||
|
||||
ffi::lua_pushboolean(state, 0);
|
||||
|
||||
Reference in New Issue
Block a user