Fix attaching __gc metamethod

Bug introdused in ddebf56
This commit is contained in:
Alex Orlenko
2024-10-29 22:56:29 +00:00
parent ddebf56b41
commit 76b896edcc
2 changed files with 4 additions and 4 deletions
+2 -2
View File
@@ -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(
+2 -2
View File
@@ -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);