From 4d9e6d7fcc8cfdb51f7e771a5b79e6f4e5e4c7de Mon Sep 17 00:00:00 2001 From: Aiden <86704247+vabold@users.noreply.github.com> Date: Fri, 21 Jun 2024 13:45:56 -0400 Subject: [PATCH] Match EGG::Heap --- configure.py | 2 +- include/egg/core/eggHeap.h | 2 +- src/egg/core/eggHeap.cpp | 11 +++-------- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/configure.py b/configure.py index 225657bc..725d1ba3 100644 --- a/configure.py +++ b/configure.py @@ -426,7 +426,7 @@ def nw4rLib(lib_name, objects, extra_cflags=[]): Object(NonMatching, "egg/core/eggDvdRipper.cpp"), Object(NonMatching, "egg/core/eggStream.cpp"), Object(Matching, "egg/core/eggAllocator.cpp"), - Object(NonMatching, "egg/core/eggHeap.cpp"), + Object(Matching, "egg/core/eggHeap.cpp"), Object(Matching, "egg/core/eggExpHeap.cpp"), Object(NonMatching, "egg/core/eggFrmHeap.cpp"), Object(NonMatching, "egg/core/eggAssertHeap.cpp"), diff --git a/include/egg/core/eggHeap.h b/include/egg/core/eggHeap.h index 84fc1dbe..548db726 100644 --- a/include/egg/core/eggHeap.h +++ b/include/egg/core/eggHeap.h @@ -141,7 +141,7 @@ class Heap : public Disposer { return (int)mHeapHandle->end; } - inline const char *getName() { + inline const char *getName() const { return mName; } diff --git a/src/egg/core/eggHeap.cpp b/src/egg/core/eggHeap.cpp index 95590c4b..4af9d84e 100644 --- a/src/egg/core/eggHeap.cpp +++ b/src/egg/core/eggHeap.cpp @@ -58,7 +58,6 @@ void *Heap::alloc(size_t size, int align, Heap *heap) { heap = currentHeap; } if (heap != sAllocatableHeap) { - // TODO small instshuffle here, related to regshuffle problems OSReport("cannot allocate from heap %x(%s) : allocatable heap is %x(%s)\n", heap, heap->getName(), sAllocatableHeap, sAllocatableHeap->getName()); OSReport("\tthread heap=%x(%s)\n", threadHeap, threadHeap != nullptr ? threadHeap->getName() : "none"); @@ -153,14 +152,13 @@ void Heap::dispose() { /* 804958a0 */ void Heap::dump() {} -// TODO: This debugging function with stripped out error reports doesn't match yet /* 804958b0 */ void Heap::dumpAll() { + Heap *heap = nullptr; u32 mem[2] = {0, 0}; OSLockMutex(&sRootMutex); - Heap *heap = nullptr; - while ((heap = (Heap *)nw4r::ut::List_GetNext(&sHeapList, &heap)) != nullptr) { + while ((heap = (Heap *)nw4r::ut::List_GetNext(&sHeapList, heap)) != nullptr) { Heap *childHeap = nullptr; Heap *parentHeap = heap->findParentHeap(); if ((u32)heap < 0x90000000) { @@ -195,13 +193,10 @@ Heap *Heap::_becomeCurrentHeapWithoutLock() { return h; } -// TODO -extern "C" void MEMInitAllocatorForHeap(Allocator *alloc, s32 align, Heap *heap); - // TODO this could be an inline virtual function /* 80495a40 */ void Heap::initAllocator(Allocator *alloc, s32 align) { - MEMInitAllocatorForHeap(alloc, align, this); + MEMInitAllocatorFor_Heap(alloc, align, this); } } // namespace EGG