Isolate JKRHeap operator overloads

Fixes #25

This isolates the JKRHeap operator new/delete overloads. Every single new/delete site in the code has been replaced with a macro.

Sadly for new[] and delete[] we have to keep global operators. The global new[] just allocates into malloc() however, and delete[] goes into free() if it's not in a JKRHeap. So that's fine.
This commit is contained in:
PJB3005
2026-02-27 23:11:59 +01:00
parent 2204ad0813
commit 038ef4216f
634 changed files with 3451 additions and 3350 deletions
+2 -2
View File
@@ -55,7 +55,7 @@ void Z2AudioArcLoader::readBSTN(const void* addr, u32 param_1) {
u8* bstnDst = (u8*)addr;
if (param_1 != 0) {
bstnDst = new (gameHeap, 4) u8[param_1];
bstnDst = JKR_NEW_ARGS (gameHeap, 4) u8[param_1];
if (bstnDst != NULL) {
memcpy(bstnDst, addr, param_1);
}
@@ -63,7 +63,7 @@ void Z2AudioArcLoader::readBSTN(const void* addr, u32 param_1) {
JUT_ASSERT(122, bstnDst);
}
JAUSoundNameTable* soundNameTable = new (gameHeap, 0) JAUSoundNameTable(true);
JAUSoundNameTable* soundNameTable = JKR_NEW_ARGS (gameHeap, 0) JAUSoundNameTable(true);
JUT_ASSERT(125, soundNameTable);
soundNameTable->init(bstnDst);