Fix using the wrong alloc/free function in reent implementation

This commit is contained in:
Maschell 2026-04-15 07:27:55 +02:00
parent 5ef13b32c0
commit e901c808eb
2 changed files with 7 additions and 4 deletions

View File

@ -4,4 +4,6 @@ extern uint32_t MEMAlloc;
extern uint32_t MEMAllocEx;
extern uint32_t MEMFree;
void Memory_CheckHeaps();
void Memory_CheckHeaps();
void *MemoryAlloc(uint32_t size);
void MemoryFree(void *ptr);

View File

@ -2,6 +2,7 @@
#include "globals.h"
#include "logger.h"
#include "memory.h"
#include <wums/reent_internal.h>
@ -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;
}