From 20bb6820d1f5f5c0260bbe86c938ca4e4d91a1ae Mon Sep 17 00:00:00 2001 From: max-001 Date: Tue, 5 Nov 2024 14:39:05 +0100 Subject: Made add_component() exception save --- src/crepe/ComponentManager.hpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/crepe/ComponentManager.hpp b/src/crepe/ComponentManager.hpp index 66e027f..f469d12 100644 --- a/src/crepe/ComponentManager.hpp +++ b/src/crepe/ComponentManager.hpp @@ -30,7 +30,8 @@ T & ComponentManager::add_component(uint32_t id, Args &&... args) { // Create a new component of type T (arguments directly forwarded). The // constructor must be called by ComponentManager. - T * instance = new T(id, forward(args)...); + T * instance_pointer = new T(id, forward(args)...); + unique_ptr instance = unique_ptr(instance_pointer); // Check if the vector size is not greater than get_instances_max if (instance->get_instances_max() != -1 @@ -40,7 +41,7 @@ T & ComponentManager::add_component(uint32_t id, Args &&... args) { } // store its unique_ptr in the vector<> - components[type][id].push_back(unique_ptr(instance)); + components[type][id].push_back(move(instance)); return *instance; } -- cgit v1.2.3