From 452f24128791a27511fcebbff8fdecc4f3151d49 Mon Sep 17 00:00:00 2001 From: Benoit Germain Date: Mon, 24 Jun 2024 11:15:50 +0200 Subject: Fix wrong Linda name when not giving any --- src/keeper.cpp | 10 ++++++++++ src/lindafactory.cpp | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/keeper.cpp b/src/keeper.cpp index cdbfac9..8261f5a 100644 --- a/src/keeper.cpp +++ b/src/keeper.cpp @@ -656,6 +656,16 @@ void Keeper::operator delete[](void* p_, Universe* U_) // ################################################################################################# // only used by linda:dump() and linda:__towatch() for debugging purposes +// table is populated as follows: +// { +// [] = { +// first = , +// count = , +// limit = | 'unlimited', +// fifo = { } +// } +// ... +// } int Keeper::PushLindaStorage(Linda& linda_, DestState const L_) { Keeper* const _keeper{ linda_.whichKeeper() }; diff --git a/src/lindafactory.cpp b/src/lindafactory.cpp index d5ebc9b..771a4c3 100644 --- a/src/lindafactory.cpp +++ b/src/lindafactory.cpp @@ -105,7 +105,7 @@ std::string_view LindaFactory::moduleName() const DeepPrelude* LindaFactory::newDeepObjectInternal(lua_State* const L_) const { // we always expect name and group at the bottom of the stack (either can be nil). any extra stuff we ignore and keep unmodified - std::string_view _linda_name{ luaG_tostring(L_, 1) }; + std::string_view _linda_name{ lua_isnil(L_, 1) ? "" : luaG_tostring(L_, 1) }; LindaGroup _linda_group{ static_cast(lua_tointeger(L_, 2)) }; // store in the linda the location of the script that created it -- cgit v1.2.3-55-g6feb