diff --git a/include/TessesFramework/HiddenField.hpp b/include/TessesFramework/HiddenField.hpp index 9a7894b..6c38837 100644 --- a/include/TessesFramework/HiddenField.hpp +++ b/include/TessesFramework/HiddenField.hpp @@ -20,13 +20,7 @@ class HiddenField { { return dynamic_cast(ptr); } - template - T* AllocField() - { - auto v = new T(); - SetField(v); - return v; - } + ~HiddenField(); }; } \ No newline at end of file diff --git a/src/Threading/Mutex.cpp b/src/Threading/Mutex.cpp index f1d296d..b29c723 100644 --- a/src/Threading/Mutex.cpp +++ b/src/Threading/Mutex.cpp @@ -39,7 +39,7 @@ namespace Tesses::Framework::Threading Mutex::Mutex() { #if defined(TESSESFRAMEWORK_ENABLE_THREADING) - auto md=this->data.AllocField(); + auto md=this->data.SetField(new MutexHiddenFieldData()); #if defined(_WIN32) md->mtx = CreateMutex(NULL,false,NULL); #elif defined(GEKKO) diff --git a/src/Threading/Thread.cpp b/src/Threading/Thread.cpp index 7f026cc..1b830bb 100644 --- a/src/Threading/Thread.cpp +++ b/src/Threading/Thread.cpp @@ -5,7 +5,7 @@ namespace Tesses::Framework::Threading { #if defined(TESSESFRAMEWORK_ENABLE_THREADING) - class ThreadHiddenFieldData { + class ThreadHiddenFieldData : public HiddenFieldData { public: #if defined(_WIN32) @@ -50,7 +50,7 @@ namespace Tesses::Framework::Threading Thread::Thread(std::function fn) { #if defined(TESSESFRAMEWORK_ENABLE_THREADING) - auto data = this->data.AllocField(); + auto data = this->data.SetField(new ThreadHiddenFieldData()); data->hasInvoked=false; data->fn = fn; #if defined(_WIN32)