This commit is contained in:
MihailRis
2024-04-22 19:34:24 +03:00
parent 5b82b18c6f
commit 7415726e47
3 changed files with 4 additions and 0 deletions
+1
View File
@@ -43,6 +43,7 @@ public:
observers.emplace(id, callback); observers.emplace(id, callback);
return std::shared_ptr<int>(new int(id), [this](int* id) { return std::shared_ptr<int>(new int(id), [this](int* id) {
observers.erase(*id); observers.erase(*id);
delete id;
}); });
} }
+2
View File
@@ -67,6 +67,7 @@ scriptenv scripting::create_pack_environment(const ContentPack& pack) {
state->pop(); state->pop();
return std::shared_ptr<int>(new int(id), [=](int* id) { return std::shared_ptr<int>(new int(id), [=](int* id) {
state->removeEnvironment(*id); state->removeEnvironment(*id);
delete id;
}); });
} }
@@ -90,6 +91,7 @@ scriptenv scripting::create_doc_environment(scriptenv parent, const std::string&
state->pop(); state->pop();
return std::shared_ptr<int>(new int(id), [=](int* id) { return std::shared_ptr<int>(new int(id), [=](int* id) {
state->removeEnvironment(*id); state->removeEnvironment(*id);
delete id;
}); });
} }
+1
View File
@@ -5,6 +5,7 @@
#include <memory> #include <memory>
namespace util { namespace util {
/// @brief Keeps shared pointers alive until destruction
class ObjectsKeeper { class ObjectsKeeper {
std::vector<std::shared_ptr<void>> ptrs; std::vector<std::shared_ptr<void>> ptrs;
public: public: