summaryrefslogtreecommitdiff
path: root/src/lua
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-01-17 15:31:23 +1100
committerjacqueline <me@jacqueline.id.au>2024-01-17 15:31:23 +1100
commit1f5249de6f7e81aa6ff2586e386f526676e67c81 (patch)
tree5fcc9737e71b3b6b20b7156ea4e759b558f732a3 /src/lua
parent08d16e858075e66df1bae3fea9d955e1b6cb73a9 (diff)
downloadtangara-fw-1f5249de6f7e81aa6ff2586e386f526676e67c81.tar.gz
shift some long-lived allocs into spi ram
Diffstat (limited to 'src/lua')
-rw-r--r--src/lua/include/property.hpp4
-rw-r--r--src/lua/property.cpp6
2 files changed, 6 insertions, 4 deletions
diff --git a/src/lua/include/property.hpp b/src/lua/include/property.hpp
index 9c5129ae..425cc15c 100644
--- a/src/lua/include/property.hpp
+++ b/src/lua/include/property.hpp
@@ -48,7 +48,7 @@ class Property {
private:
LuaValue value_;
std::optional<std::function<bool(const LuaValue&)>> cb_;
- std::vector<std::pair<lua_State*, int>> bindings_;
+ std::pmr::vector<std::pair<lua_State*, int>> bindings_;
};
class PropertyBindings {
@@ -61,7 +61,7 @@ class PropertyBindings {
auto GetFunction(size_t i) -> const LuaFunction&;
private:
- std::vector<LuaFunction> functions_;
+ std::pmr::vector<LuaFunction> functions_;
};
} // namespace lua
diff --git a/src/lua/property.cpp b/src/lua/property.cpp
index 2d702447..14056af7 100644
--- a/src/lua/property.cpp
+++ b/src/lua/property.cpp
@@ -17,6 +17,7 @@
#include "lua.hpp"
#include "lua_thread.hpp"
#include "lvgl.h"
+#include "memory_resource.hpp"
#include "service_locator.hpp"
#include "track.hpp"
#include "types.hpp"
@@ -158,11 +159,12 @@ auto PropertyBindings::GetFunction(size_t i) -> const LuaFunction& {
template <class... Ts>
inline constexpr bool always_false_v = false;
-Property::Property(const LuaValue& val) : value_(val), cb_() {}
+Property::Property(const LuaValue& val)
+ : value_(val), cb_(), bindings_(&memory::kSpiRamResource) {}
Property::Property(const LuaValue& val,
std::function<bool(const LuaValue& val)> cb)
- : value_(val), cb_(cb) {}
+ : value_(val), cb_(cb), bindings_(&memory::kSpiRamResource) {}
static auto pushTagValue(lua_State* L, const database::TagValue& val) -> void {
std::visit(