From dd4a6ece589ca49130f2adf29d38af678f1640a9 Mon Sep 17 00:00:00 2001 From: Benoit Germain Date: Mon, 29 Apr 2024 15:53:25 +0200 Subject: Fix keeper state stack integrity assertion --- src/deep.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/deep.cpp b/src/deep.cpp index 10f589e..af7e814 100644 --- a/src/deep.cpp +++ b/src/deep.cpp @@ -174,7 +174,11 @@ void DeepFactory::DeleteDeepObject(lua_State* L_, DeepPrelude* o_) lua_insert( L_, -2); // __gc self lua_call( L_, 1, 0); // } - // we don't really know what remains on the stack at that point (depending on us finding a __gc or not), but we don't care + else + { + // need an empty stack in case we are GC_ing from a Keeper, so that empty stack checks aren't triggered + lua_pop(L_, 2); + } DeepFactory::DeleteDeepObject(L_, p); } return 0; -- cgit v1.2.3-55-g6feb