summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorrobojumper <robojumper@gmail.com>2025-05-25 22:41:53 +0200
committerrobojumper <robojumper@gmail.com>2025-05-25 22:41:53 +0200
commit6272daffa4f0aaffebd8a28abc85d7201b4faca5 (patch)
tree400484367d6c8728418c8fd4be8d68c93d936942 /src
parent7038a266f43549423c6627bdb5e9d1bfacf08560 (diff)
snd_FrameHeap OK
Diffstat (limited to 'src')
-rw-r--r--src/nw4r/snd/snd_FrameHeap.cpp9
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() {