MCPcopy Create free account
hub / github.com/GameTechDev/PresentMon / NewBuffer

Method NewBuffer

IntelPresentMon/FlashInjectorLibrary/MemoryPool.cpp:13–45  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11 {}
12
13 uint8_t* MemoryPool::NewBuffer(size_t len, const uint8_t* pData)
14 {
15 Buffer* pNextBuffer = nullptr;
16 auto idx = m_CurrentBufferIdx++;
17
18 if (idx < m_Buffers.size())
19 {
20 pNextBuffer = &m_Buffers[idx];
21 if (pData)
22 {
23 pNextBuffer->clear();
24 std::copy(pData, pData + len, std::back_inserter(*pNextBuffer));
25 }
26 else if (len > pNextBuffer->size())
27 {
28 pNextBuffer->resize(len);
29 }
30 }
31 else
32 {
33 if (pData)
34 {
35 m_Buffers.emplace_back(pData, pData + len);
36 }
37 else
38 {
39 m_Buffers.emplace_back(len);
40 }
41 pNextBuffer = &m_Buffers[idx];
42 }
43
44 return pNextBuffer->data();
45 }
46
47 void MemoryPool::Reset()
48 {

Callers 2

UnwrapObjectsFunction · 0.80
MakeUnwrapStructsFunction · 0.80

Calls 2

copyFunction · 0.85
sizeMethod · 0.45

Tested by

no test coverage detected