diff --git a/common/objectalloc/CObjectHeap.cpp b/common/objectalloc/CObjectHeap.cpp index a4ccc79..6e4b9c8 100644 --- a/common/objectalloc/CObjectHeap.cpp +++ b/common/objectalloc/CObjectHeap.cpp @@ -4,6 +4,18 @@ #include #include +CObjectHeap::CObjectHeap(const CObjectHeap& heap) { + if (this == &heap) { + return; + } + this->m_obj = heap.m_obj; + this->m_indexStack = heap.m_indexStack; + this->m_allocated = heap.m_allocated; + heap.m_obj = nullptr; + heap.m_indexStack = nullptr; + heap.m_allocated = 0; +} + CObjectHeap::~CObjectHeap() { this->Free(); } diff --git a/common/objectalloc/CObjectHeap.hpp b/common/objectalloc/CObjectHeap.hpp index 651696c..ea4505f 100644 --- a/common/objectalloc/CObjectHeap.hpp +++ b/common/objectalloc/CObjectHeap.hpp @@ -6,12 +6,14 @@ class CObjectHeap { public: // Member variables - void* m_obj = nullptr; - uint32_t* m_indexStack = nullptr; - uint32_t m_allocated = 0; + mutable void* m_obj = nullptr; + mutable uint32_t* m_indexStack = nullptr; + mutable uint32_t m_allocated = 0; // Member functions CObjectHeap() = default; + CObjectHeap(const CObjectHeap& heap); + CObjectHeap& operator=(const CObjectHeap& heap) = delete; ~CObjectHeap(); int32_t Allocate(uint32_t objSize, uint32_t heapObjects, const char* heapName);