From f945a35cbdef44955a1b4e24e2d0e56fc4e31b4e Mon Sep 17 00:00:00 2001 From: Alex Orlenko Date: Tue, 15 Jul 2025 19:14:46 +0100 Subject: [PATCH] Execute metatable destructor in `Table::set_metatable` at the end of invocation Before this change, destructor was executed shortly after pushing metatable to ref_thread. --- src/table.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/table.rs b/src/table.rs index 822a20c..ba506fe 100644 --- a/src/table.rs +++ b/src/table.rs @@ -510,7 +510,7 @@ impl Table { let lua = self.0.lua.lock(); let ref_thread = lua.ref_thread(); unsafe { - if let Some(metatable) = metatable { + if let Some(metatable) = &metatable { ffi::lua_pushvalue(ref_thread, metatable.0.index); } else { ffi::lua_pushnil(ref_thread);