diff options
| author | robojumper <robojumper@gmail.com> | 2025-05-25 22:41:53 +0200 |
|---|---|---|
| committer | robojumper <robojumper@gmail.com> | 2025-05-25 22:41:53 +0200 |
| commit | 6272daffa4f0aaffebd8a28abc85d7201b4faca5 (patch) | |
| tree | 400484367d6c8728418c8fd4be8d68c93d936942 /src/nw4r | |
| parent | 7038a266f43549423c6627bdb5e9d1bfacf08560 (diff) | |
snd_FrameHeap OK
Diffstat (limited to 'src/nw4r')
| -rw-r--r-- | src/nw4r/snd/snd_FrameHeap.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/nw4r/snd/snd_FrameHeap.cpp b/src/nw4r/snd/snd_FrameHeap.cpp index 5c67fdad..31202906 100644 --- a/src/nw4r/snd/snd_FrameHeap.cpp +++ b/src/nw4r/snd/snd_FrameHeap.cpp @@ -63,10 +63,11 @@ void* FrameHeap::Alloc(u32 size, FreeCallback pCallback, void* pCallbackArg) { return NULL; } - Block* pBlock = new (pBuffer) Block(size, pCallback, pCallbackArg); + void *pBuffer2 = ut::AddOffsetToPtr(pBuffer, BLOCK_BUFFER_SIZE); + Block* pBlock = new (pBuffer) Block(pBuffer2, size, pCallback, pCallbackArg); mSectionList.GetBack().AppendBlock(pBlock); - return pBlock->GetBufferAddr(); + return pBuffer2; } int FrameHeap::SaveState() { @@ -106,11 +107,11 @@ int FrameHeap::GetCurrentLevel() const { u32 FrameHeap::GetFreeSize() const { u32 freeSize = MEMGetAllocatableSizeForFrmHeapEx(mHandle, HEAP_ALIGN); - if (freeSize < BLOCK_BUFFER_SIZE) { + if (freeSize < sizeof(Block)) { return 0; } - return ut::RoundDown(freeSize - BLOCK_BUFFER_SIZE, HEAP_ALIGN); + return ut::RoundDown(freeSize - sizeof(Block), HEAP_ALIGN); } bool FrameHeap::NewSection() { |
