From 7415726e47e04641326b8aa1dd811dbdbda72de7 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Mon, 22 Apr 2024 19:34:24 +0300 Subject: [PATCH] fixes --- src/data/setting.h | 1 + src/logic/scripting/scripting.cpp | 2 ++ src/util/ObjectsKeeper.hpp | 1 + 3 files changed, 4 insertions(+) diff --git a/src/data/setting.h b/src/data/setting.h index e25ee864..9f3c8529 100644 --- a/src/data/setting.h +++ b/src/data/setting.h @@ -43,6 +43,7 @@ public: observers.emplace(id, callback); return std::shared_ptr(new int(id), [this](int* id) { observers.erase(*id); + delete id; }); } diff --git a/src/logic/scripting/scripting.cpp b/src/logic/scripting/scripting.cpp index ee816ecf..b3b358e0 100644 --- a/src/logic/scripting/scripting.cpp +++ b/src/logic/scripting/scripting.cpp @@ -67,6 +67,7 @@ scriptenv scripting::create_pack_environment(const ContentPack& pack) { state->pop(); return std::shared_ptr(new int(id), [=](int* id) { state->removeEnvironment(*id); + delete id; }); } @@ -90,6 +91,7 @@ scriptenv scripting::create_doc_environment(scriptenv parent, const std::string& state->pop(); return std::shared_ptr(new int(id), [=](int* id) { state->removeEnvironment(*id); + delete id; }); } diff --git a/src/util/ObjectsKeeper.hpp b/src/util/ObjectsKeeper.hpp index 1791b341..8b5ba5b5 100644 --- a/src/util/ObjectsKeeper.hpp +++ b/src/util/ObjectsKeeper.hpp @@ -5,6 +5,7 @@ #include namespace util { + /// @brief Keeps shared pointers alive until destruction class ObjectsKeeper { std::vector> ptrs; public: