From 5d0182796e2b155db5182a2921c11a0572fa077b Mon Sep 17 00:00:00 2001 From: VDm Date: Sat, 23 Aug 2025 14:48:13 +0400 Subject: [PATCH] feat(objectalloc): implement copy constructor for CObjectHeap --- common/objectalloc/CObjectHeap.cpp | 12 ++++++++++++ common/objectalloc/CObjectHeap.hpp | 8 +++++--- 2 files changed, 17 insertions(+), 3 deletions(-) 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);