Commit Graph

6 Commits

Author SHA1 Message Date
Lion Kortlepel 4104dc1f18 fix lua result serialization causing various issues
for example, loading a library which returns a table of functions would
fail with an inexplicable (to the user) error about serialization. This
is now fixed. We no longer use a single result type, instead there are
void results and normal results, and the former simply never has to
worry about the result.

This was likely causing even more issues; if the `sol::object` was
populated before, it hitting the dtor in another path would, again, like
we've seen before, corrupt the lua stack.
2026-04-29 18:29:02 +00:00
Lion Kortlepel 57fe7cb055 fix GCC 11 compiler/libstdc++ error
GCC 11's C++ stdlib does a weird maneuver here where it needs to know
the size of the std::pair<>::second's type. So we wrap it in a ptr.
2026-04-19 21:16:43 +00:00
Lion Kortlepel 4045727c8b fix unit-tests crashing due to sol::object::~object 2026-04-19 20:15:58 +00:00
Lion Kortlepel 8f2b8b25e8 add AGPL headers to more new files 2026-04-19 18:41:06 +00:00
Lion Kortlepel 3e12e487ab fix success/error handling in lua engine 2026-04-19 18:17:54 +00:00
Lion Kortlepel b3e8d86cef refactor Lua result handling for safety
this massively improves thread safety and cleanly serializes accesses
into the lua engine's result objects where accesses before were
extremely unsafe and could access a corrupt/invalid stack.

this fixes various obscure crashes related to accessing results,
without changing any observable behavior.
2026-04-19 18:17:54 +00:00