From e901c808eb63c567066f253a653f7c378ce56f74 Mon Sep 17 00:00:00 2001 From: Maschell Date: Wed, 15 Apr 2026 07:27:55 +0200 Subject: [PATCH] Fix using the wrong alloc/free function in reent implementation --- wumsloader/src/utils/memory.h | 4 +++- wumsloader/src/utils/reent.cpp | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/wumsloader/src/utils/memory.h b/wumsloader/src/utils/memory.h index 3580441..19f9f80 100644 --- a/wumsloader/src/utils/memory.h +++ b/wumsloader/src/utils/memory.h @@ -4,4 +4,6 @@ extern uint32_t MEMAlloc; extern uint32_t MEMAllocEx; extern uint32_t MEMFree; -void Memory_CheckHeaps(); \ No newline at end of file +void Memory_CheckHeaps(); +void *MemoryAlloc(uint32_t size); +void MemoryFree(void *ptr); \ No newline at end of file diff --git a/wumsloader/src/utils/reent.cpp b/wumsloader/src/utils/reent.cpp index 5298180..91461df 100644 --- a/wumsloader/src/utils/reent.cpp +++ b/wumsloader/src/utils/reent.cpp @@ -2,6 +2,7 @@ #include "globals.h" #include "logger.h" +#include "memory.h" #include @@ -125,7 +126,7 @@ void ClearDanglingReentPtr() { nodeToFree->cleanupFn(nodeToFree->reentPtr); } DEBUG_FUNCTION_LINE_VERBOSE("[%p] Free node %p (dangling)", OSGetCurrentThread(), nodeToFree); - MEMFreeToDefaultHeap(nodeToFree); + MemoryFree(nodeToFree); } sGlobalNodesCopy.clear(); } @@ -157,7 +158,7 @@ static void __wums_thread_cleanup(OSThread *thread, void *stack) { removeNodeFromListsSafe(curr); DEBUG_FUNCTION_LINE_VERBOSE("[%p] Free node %p", thread, curr); - MEMFreeToDefaultHeap(curr); + MemoryFree(curr); } curr = next; @@ -206,7 +207,7 @@ bool wums_backend_register_context(const void *moduleId, void *reentPtr, void (* return false; } - auto *newNode = static_cast<__wums_reent_node *>(MEMAllocFromDefaultHeap(sizeof(__wums_reent_node))); + auto *newNode = static_cast<__wums_reent_node *>(MemoryAlloc(sizeof(__wums_reent_node))); if (!newNode) { return false; }