mirror of
https://github.com/mlua-rs/mlua
synced 2026-06-08 16:05:43 +00:00
Don't leak userdata if the metatable creation errors or panics
This commit is contained in:
+2
-2
@@ -970,14 +970,14 @@ impl Lua {
|
||||
let _sg = StackGuard::new(self.state);
|
||||
assert_stack(self.state, 4);
|
||||
|
||||
let ud_index = self.userdata_metatable::<T>()?;
|
||||
push_userdata::<RefCell<T>>(self.state, RefCell::new(data))?;
|
||||
|
||||
ffi::lua_rawgeti(
|
||||
self.state,
|
||||
ffi::LUA_REGISTRYINDEX,
|
||||
self.userdata_metatable::<T>()? as ffi::lua_Integer,
|
||||
ud_index as ffi::lua_Integer,
|
||||
);
|
||||
|
||||
ffi::lua_setmetatable(self.state, -2);
|
||||
|
||||
Ok(AnyUserData(self.pop_ref()))
|
||||
|
||||
Reference in New Issue
Block a user