From 7536dd706ca2ef6ff007c08beddaaf7b7a433630 Mon Sep 17 00:00:00 2001 From: fallenoak Date: Sat, 25 Feb 2023 10:33:12 -0600 Subject: [PATCH] feat(datastore): add dtor --- common/datastore/CDataStore.cpp | 10 ++++++++++ common/datastore/CDataStore.hpp | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/common/datastore/CDataStore.cpp b/common/datastore/CDataStore.cpp index 7087ce7..bb1d74f 100644 --- a/common/datastore/CDataStore.cpp +++ b/common/datastore/CDataStore.cpp @@ -5,6 +5,16 @@ #include #include +CDataStore::~CDataStore() { + this->Destroy(); +} + +void CDataStore::Destroy() { + if (this->m_alloc != -1) { + this->InternalDestroy(this->m_data, this->m_base, this->m_alloc); + } +} + void CDataStore::DetachBuffer(void** data, uint32_t* size, uint32_t* alloc) { // TODO } diff --git a/common/datastore/CDataStore.hpp b/common/datastore/CDataStore.hpp index b1c5d6e..cd8a6fd 100644 --- a/common/datastore/CDataStore.hpp +++ b/common/datastore/CDataStore.hpp @@ -17,8 +17,7 @@ class CDataStore { virtual void InternalDestroy(uint8_t*& data, uint32_t& base, uint32_t& alloc); virtual int32_t InternalFetchRead(uint32_t pos, uint32_t bytes, uint8_t*& data, uint32_t& base, uint32_t& alloc); virtual int32_t InternalFetchWrite(uint32_t pos, uint32_t bytes, uint8_t*& data, uint32_t& base, uint32_t& alloc, const char* fileName, int32_t lineNumber); - // TODO - // virtual ~CDataStore(); + virtual ~CDataStore(); virtual int32_t IsRead() const; virtual void Reset(); virtual void Finalize(); @@ -27,6 +26,7 @@ class CDataStore { virtual uint32_t GetHeaderSpace(); // Member functions + void Destroy(); int32_t FetchRead(uint32_t pos, uint32_t bytes); int32_t FetchWrite(uint32_t pos, uint32_t bytes, const char* fileName, int32_t lineNumber); CDataStore& Get(uint8_t& val);