aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/api
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-10-16 18:24:16 +0200
committerLoek Le Blansch <loek@pipeframe.xyz>2024-10-16 18:24:16 +0200
commit9fd3bdca9de2d37b63e1646b22d32b0b182f01ee (patch)
tree363af52a0db9a75f5cd2aebd6108d5b880865ff8 /src/crepe/api
parent81a9b43e12a32340262fa0e74005c7e6bd25eba7 (diff)
use unique_ptr instead of manual memory management in behaviorscriptloek/scripts
Diffstat (limited to 'src/crepe/api')
-rw-r--r--src/crepe/api/BehaviorScript.cpp7
-rw-r--r--src/crepe/api/BehaviorScript.h6
-rw-r--r--src/crepe/api/BehaviorScript.hpp3
3 files changed, 6 insertions, 10 deletions
diff --git a/src/crepe/api/BehaviorScript.cpp b/src/crepe/api/BehaviorScript.cpp
index e8a85dd..7a93f10 100644
--- a/src/crepe/api/BehaviorScript.cpp
+++ b/src/crepe/api/BehaviorScript.cpp
@@ -9,10 +9,3 @@ BehaviorScript::BehaviorScript() {
dbg_trace();
}
-BehaviorScript::~BehaviorScript() {
- if (this->script != nullptr) {
- delete this->script;
- this->script = nullptr;
- }
-}
-
diff --git a/src/crepe/api/BehaviorScript.h b/src/crepe/api/BehaviorScript.h
index e197991..756c2ca 100644
--- a/src/crepe/api/BehaviorScript.h
+++ b/src/crepe/api/BehaviorScript.h
@@ -1,5 +1,7 @@
#pragma once
+#include <memory>
+
#include "../Component.h"
namespace crepe {
@@ -16,7 +18,7 @@ protected:
friend class crepe::ComponentManager;
BehaviorScript();
public:
- virtual ~BehaviorScript();
+ virtual ~BehaviorScript() = default;
public:
template<class T>
@@ -24,7 +26,7 @@ public:
protected:
friend class crepe::ScriptSystem;
- Script * script = nullptr;
+ std::unique_ptr<Script> script = nullptr;
};
}
diff --git a/src/crepe/api/BehaviorScript.hpp b/src/crepe/api/BehaviorScript.hpp
index 0401c0d..9a1f427 100644
--- a/src/crepe/api/BehaviorScript.hpp
+++ b/src/crepe/api/BehaviorScript.hpp
@@ -11,7 +11,8 @@ template<class T>
BehaviorScript & BehaviorScript::set_script() {
static_assert(std::is_base_of<Script, T>::value);
dbg_trace();
- this->script = new T();
+ Script * s = new T();
+ this->script = std::unique_ptr<Script>(s);
return *this;
}