Skip to content

Commit 7134047

Browse files
authored
Delete various copy constructors and assignment operators (#102)
Prevents common C++ programming mistakes
1 parent 73960d7 commit 7134047

5 files changed

Lines changed: 34 additions & 1 deletion

File tree

graphics/deko3d/deko_examples/source/SampleFramework/CCmdMemRing.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ class CCmdMemRing
1515
dk::Fence m_fences[NumSlices];
1616
public:
1717
CCmdMemRing() : m_mem{}, m_curSlice{}, m_fences{} { }
18+
19+
CCmdMemRing(const CCmdMemRing&) = delete;
20+
21+
CCmdMemRing& operator=(const CCmdMemRing&) = delete;
22+
1823
~CCmdMemRing()
1924
{
2025
m_mem.destroy();

graphics/deko3d/deko_examples/source/SampleFramework/CDescriptorSet.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,12 @@ class CDescriptorSet
1818
CMemPool::Handle m_mem;
1919
public:
2020
CDescriptorSet() : m_mem{} { }
21-
~CDescriptorSet()
21+
22+
CDescriptorSet(const CDescriptorSet&) = delete;
23+
24+
CDescriptorSet& operator=(const CDescriptorSet&) = delete;
25+
26+
~CDescriptorSet()
2227
{
2328
m_mem.destroy();
2429
}

graphics/deko3d/deko_examples/source/SampleFramework/CExternalImage.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ class CExternalImage
1313
CMemPool::Handle m_mem;
1414
public:
1515
CExternalImage() : m_image{}, m_descriptor{}, m_mem{} { }
16+
17+
CExternalImage(const CExternalImage&) = delete;
18+
19+
CExternalImage& operator=(const CExternalImage&) = delete;
20+
1621
~CExternalImage()
1722
{
1823
m_mem.destroy();

graphics/deko3d/deko_examples/source/SampleFramework/CMemPool.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ class CMemPool
2020
void* m_cpuAddr;
2121
DkGpuAddr m_gpuAddr;
2222

23+
Block(const Block&) = delete;
24+
25+
Block& operator=(const Block&) = delete;
26+
2327
constexpr void* cpuOffset(uint32_t offset) const
2428
{
2529
return m_cpuAddr ? ((u8*)m_cpuAddr + offset) : nullptr;
@@ -42,6 +46,10 @@ class CMemPool
4246
uint32_t m_start;
4347
uint32_t m_end;
4448

49+
Slice(const Slice&) = delete;
50+
51+
Slice& operator=(const Slice&) = delete;
52+
4553
constexpr uint32_t getSize() const { return m_end - m_start; }
4654
constexpr bool canCoalesce(Slice const& rhs) const { return m_pool == rhs.m_pool && m_block == rhs.m_block && m_end == rhs.m_start; }
4755

@@ -109,9 +117,14 @@ class CMemPool
109117

110118
CMemPool(dk::Device dev, uint32_t flags = DkMemBlockFlags_CpuUncached | DkMemBlockFlags_GpuCached, uint32_t blockSize = DefaultBlockSize) :
111119
m_dev{dev}, m_flags{flags}, m_blockSize{blockSize}, m_blocks{}, m_memMap{}, m_sliceHeap{}, m_freeList{} { }
120+
112121
~CMemPool();
113122

114123
Handle allocate(uint32_t size, uint32_t alignment = DK_CMDMEM_ALIGNMENT);
124+
125+
CMemPool(const CMemPool&) = delete;
126+
127+
CMemPool& operator=(const CMemPool&) = delete;
115128
};
116129

117130
constexpr bool operator<(uint32_t lhs, CMemPool::Slice const& rhs)

graphics/deko3d/deko_examples/source/SampleFramework/CShader.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ class CShader
1212
CMemPool::Handle m_codemem;
1313
public:
1414
CShader() : m_shader{}, m_codemem{} { }
15+
16+
CShader(const CShader&) = delete;
17+
18+
CShader& operator=(const CShader&) = delete;
19+
1520
~CShader()
1621
{
1722
m_codemem.destroy();

0 commit comments

Comments
 (0)