diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-12 18:23:21 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-12 18:23:21 -0400 |
commit | 61a7e3213a21aba6e946a0b6d4bd907bbfb21dde (patch) | |
tree | 0bcf58ef2ee30121eae2b11c026b49ee6d968b4e /arm9/src | |
parent | 1f1436119c04f510975d3729458d9218340beb9d (diff) |
Additional two funcs in FUN_020910A4
Diffstat (limited to 'arm9/src')
-rw-r--r-- | arm9/src/FUN_020910A4.c | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/arm9/src/FUN_020910A4.c b/arm9/src/FUN_020910A4.c index 850486d4..d1ee68b9 100644 --- a/arm9/src/FUN_020910A4.c +++ b/arm9/src/FUN_020910A4.c @@ -1,10 +1,32 @@ #include "global.h" -void * (* gUnk021C8C70)(u32); +typedef void * (* AllocFunc)(u32 size); +typedef void (* FreeFunc)(void * ptr); +AllocFunc gUnk021C8C70; +FreeFunc gUnk021C8C74; + +// Custom allocator ARM_FUNC void* FUN_020910A4(u32 size) { - if (gUnk021C8C70 != NULL) - return gUnk021C8C70(size); - return OS_AllocFromHeap(OS_ARENA_MAIN, -1, size); + if (gUnk021C8C70 != NULL) + return gUnk021C8C70(size); + else + return OS_AllocFromHeap(OS_ARENA_MAIN, -1, size); +} + +// Custom destructor +ARM_FUNC void FUN_0209105C(void * ptr) +{ + if (gUnk021C8C74 != NULL) + gUnk021C8C74(ptr); + else + OS_FreeToHeap(OS_ARENA_MAIN, -1, ptr); +} + +// Custom alloc/free setter +ARM_FUNC void SetCustomAllocator(AllocFunc allocator, FreeFunc destructor) +{ + gUnk021C8C70 = allocator; + gUnk021C8C74 = destructor; } |