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
+16 -16
View File
@@ -23,7 +23,7 @@ dMsgScrnJimaku_c::dMsgScrnJimaku_c(u8 param_0, JKRExpHeap* i_heap) {
init();
mpScreen = new J2DScreen();
mpScreen = JKR_NEW J2DScreen();
JUT_ASSERT(0, mpScreen != NULL);
bool fg = mpScreen->setPriority("zelda_jimaku_message_text.blo", 0x20000,
@@ -31,7 +31,7 @@ dMsgScrnJimaku_c::dMsgScrnJimaku_c(u8 param_0, JKRExpHeap* i_heap) {
JUT_ASSERT(0, fg != false);
dPaneClass_showNullPane(mpScreen);
mpLight_c = new dMsgScrnLight_c(0, param_0);
mpLight_c = JKR_NEW dMsgScrnLight_c(0, param_0);
JUT_ASSERT(0, mpLight_c != NULL);
void* mpBuf = heap->alloc(0x106A, 0x20);
@@ -39,7 +39,7 @@ dMsgScrnJimaku_c::dMsgScrnJimaku_c(u8 param_0, JKRExpHeap* i_heap) {
memset(mpBuf, 0, 0x106A);
mCharInfoPtr = (CharInfo_c*)mpBuf;
mpPmP_c = new CPaneMgr(mpScreen, MULTI_CHAR('mg_null'), 3, NULL);
mpPmP_c = JKR_NEW CPaneMgr(mpScreen, MULTI_CHAR('mg_null'), 3, NULL);
JUT_ASSERT(0, mpPmP_c != NULL);
mpPmP_c->scale(g_MsgObject_HIO_c.mSubtitleScaleX, g_MsgObject_HIO_c.mSubtitleScaleY);
field_0xcc = g_MsgObject_HIO_c.mBoxPos[0][5];
@@ -47,28 +47,28 @@ dMsgScrnJimaku_c::dMsgScrnJimaku_c(u8 param_0, JKRExpHeap* i_heap) {
#if VERSION == VERSION_GCN_JPN
if (dComIfGs_getOptRuby() == 0) {
mpTm_c[0] = new CPaneMgr(mpScreen, MULTI_CHAR('mg_3flin'), 0, NULL);
mpTm_c[1] = new CPaneMgr(mpScreen, MULTI_CHAR('t3f_s'), 0, NULL);
mpTm_c[0] = JKR_NEW CPaneMgr(mpScreen, MULTI_CHAR('mg_3flin'), 0, NULL);
mpTm_c[1] = JKR_NEW CPaneMgr(mpScreen, MULTI_CHAR('t3f_s'), 0, NULL);
mpTmr_c[0] = new CPaneMgr(mpScreen, MULTI_CHAR('mg_3f'), 0, NULL);
mpTmr_c[1] = new CPaneMgr(mpScreen, MULTI_CHAR('mg_3f_s'), 0, NULL);
mpTmr_c[0] = JKR_NEW CPaneMgr(mpScreen, MULTI_CHAR('mg_3f'), 0, NULL);
mpTmr_c[1] = JKR_NEW CPaneMgr(mpScreen, MULTI_CHAR('mg_3f_s'), 0, NULL);
mpScreen->search(MULTI_CHAR('n_3line'))->hide();
mpScreen->search(MULTI_CHAR('n_3fline'))->show();
mpScreen->search(MULTI_CHAR('n_e4line'))->hide();
} else {
mpTm_c[0] = new CPaneMgr(mpScreen, MULTI_CHAR('mg_3line'), 0, NULL);
mpTm_c[1] = new CPaneMgr(mpScreen, 't3_s', 0, NULL);
mpTm_c[0] = JKR_NEW CPaneMgr(mpScreen, MULTI_CHAR('mg_3line'), 0, NULL);
mpTm_c[1] = JKR_NEW CPaneMgr(mpScreen, 't3_s', 0, NULL);
mpScreen->search(MULTI_CHAR('n_3line'))->show();
mpScreen->search(MULTI_CHAR('n_3fline'))->hide();
mpScreen->search(MULTI_CHAR('n_e4line'))->hide();
}
#else
mpTm_c[0] = new CPaneMgr(mpScreen, MULTI_CHAR('mg_e4lin'), 0, NULL);
mpTm_c[0] = JKR_NEW CPaneMgr(mpScreen, MULTI_CHAR('mg_e4lin'), 0, NULL);
JUT_ASSERT(0, mpTm_c[0] != NULL);
mpTm_c[1] = new CPaneMgr(mpScreen, 't4_s', 0, NULL);
mpTm_c[1] = JKR_NEW CPaneMgr(mpScreen, 't4_s', 0, NULL);
JUT_ASSERT(0, mpTm_c[1] != NULL);
mpScreen->search(MULTI_CHAR('n_3line'))->hide();
@@ -129,10 +129,10 @@ dMsgScrnJimaku_c::dMsgScrnJimaku_c(u8 param_0, JKRExpHeap* i_heap) {
}
dMsgScrnJimaku_c::~dMsgScrnJimaku_c() {
delete mpScreen;
JKR_DELETE(mpScreen);
mpScreen = NULL;
delete mpLight_c;
JKR_DELETE(mpLight_c);
mpLight_c = NULL;
if (mCharInfoPtr != NULL) {
@@ -140,15 +140,15 @@ dMsgScrnJimaku_c::~dMsgScrnJimaku_c() {
mCharInfoPtr = NULL;
}
delete mpPmP_c;
JKR_DELETE(mpPmP_c);
mpPmP_c = NULL;
for (int i = 0; i < 2; i++) {
delete mpTm_c[i];
JKR_DELETE(mpTm_c[i]);
mpTm_c[i] = NULL;
if (mpTmr_c[i] != NULL) {
delete mpTmr_c[i];
JKR_DELETE(mpTmr_c[i]);
mpTmr_c[i] = NULL;
}
}