From cd650b30bd3ddfb9f71622278ef5b6f94ae27ac8 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Fri, 19 Jan 2024 12:52:41 +1100 Subject: fix some lua stack leaks + add a console func to help debug --- src/ui/include/ui_events.hpp | 2 ++ src/ui/include/ui_fsm.hpp | 2 ++ src/ui/ui_fsm.cpp | 4 ++++ 3 files changed, 8 insertions(+) (limited to 'src/ui') diff --git a/src/ui/include/ui_events.hpp b/src/ui/include/ui_events.hpp index 07b18dea..5c033b0c 100644 --- a/src/ui/include/ui_events.hpp +++ b/src/ui/include/ui_events.hpp @@ -28,6 +28,8 @@ struct OnLuaError : tinyfsm::Event { std::string message; }; +struct DumpLuaStack : tinyfsm::Event {}; + namespace internal { struct ControlSchemeChanged : tinyfsm::Event {}; diff --git a/src/ui/include/ui_fsm.hpp b/src/ui/include/ui_fsm.hpp index 583a00a5..9de1169b 100644 --- a/src/ui/include/ui_fsm.hpp +++ b/src/ui/include/ui_fsm.hpp @@ -51,6 +51,7 @@ class UiState : public tinyfsm::Fsm { void react(const tinyfsm::Event& ev) {} virtual void react(const OnLuaError&) {} + virtual void react(const DumpLuaStack&) {} virtual void react(const internal::BackPressed&) {} virtual void react(const system_fsm::BootComplete&) {} virtual void react(const system_fsm::StorageMounted&) {} @@ -148,6 +149,7 @@ class Lua : public UiState { void exit() override; void react(const OnLuaError&) override; + void react(const DumpLuaStack&) override; void react(const internal::BackPressed&) override; using UiState::react; diff --git a/src/ui/ui_fsm.cpp b/src/ui/ui_fsm.cpp index 7f94abc5..e532e693 100644 --- a/src/ui/ui_fsm.cpp +++ b/src/ui/ui_fsm.cpp @@ -541,6 +541,10 @@ void Lua::react(const OnLuaError& err) { ESP_LOGE("lua", "%s", err.message.c_str()); } +void Lua::react(const DumpLuaStack& ev) { + sLua->DumpStack(); +} + void Lua::react(const internal::BackPressed& ev) { PopLuaScreen(sLua->state()); } -- cgit v1.2.3