Merge pull request #14 from vabold/heap

Match EGG::Heap
This commit is contained in:
robojumper
2024-06-21 23:26:00 +02:00
committed by GitHub
3 changed files with 5 additions and 10 deletions
+1 -1
View File
@@ -426,7 +426,7 @@ config.libs = [
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"),
+1 -1
View File
@@ -141,7 +141,7 @@ public:
return (int)mHeapHandle->end;
}
inline const char *getName() {
inline const char *getName() const {
return mName;
}
+3 -8
View File
@@ -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