mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-05-27 07:37:24 -04:00
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:
+27
-27
@@ -347,22 +347,22 @@ int dMsgObject_c::_create(msg_class* param_1) {
|
||||
changeGroup(0);
|
||||
mpOutFont = NULL;
|
||||
mpScrnDraw = NULL;
|
||||
mpResCont = new JMessage::TResourceContainer();
|
||||
mpResCont = JKR_NEW JMessage::TResourceContainer();
|
||||
JUT_ASSERT(1299, mpResCont != NULL);
|
||||
mpCtrl = dDemo_c::getMesgControl();
|
||||
JUT_ASSERT(1302, mpCtrl != NULL);
|
||||
mpRefer = new jmessage_tReference();
|
||||
mpRefer = JKR_NEW jmessage_tReference();
|
||||
JUT_ASSERT(1305, mpRefer != NULL);
|
||||
mpRefer->setpStatus(¶m_1->mode);
|
||||
mpSeqProc = new jmessage_tSequenceProcessor(mpRefer, mpCtrl);
|
||||
mpSeqProc = JKR_NEW jmessage_tSequenceProcessor(mpRefer, mpCtrl);
|
||||
JUT_ASSERT(1310, mpSeqProc != NULL);
|
||||
mpRenProc = new jmessage_tRenderingProcessor(mpRefer);
|
||||
mpRenProc = JKR_NEW jmessage_tRenderingProcessor(mpRefer);
|
||||
JUT_ASSERT(1313, mpRenProc != NULL);
|
||||
mpRefer->setResourceContainer(mpResCont);
|
||||
mpCtrl->setSequenceProcessor(mpSeqProc);
|
||||
mpCtrl->setRenderingProcessor(mpRenProc);
|
||||
mpRefer->setObjectPtr(this);
|
||||
field_0x124 = new JMessage::TParse(mpResCont);
|
||||
field_0x124 = JKR_NEW JMessage::TParse(mpResCont);
|
||||
field_0x124->parse(mpMsgDt, 0);
|
||||
mpCtrl->reset();
|
||||
mpCtrl->resetResourceCache();
|
||||
@@ -395,7 +395,7 @@ int dMsgObject_c::_create(msg_class* param_1) {
|
||||
field_0x15c = 0;
|
||||
field_0x172 = 0;
|
||||
setStatusLocal(1);
|
||||
mpMsgString = new dMsgString_c();
|
||||
mpMsgString = JKR_NEW dMsgString_c();
|
||||
JUT_ASSERT(1366, mpMsgString != NULL);
|
||||
return 4;
|
||||
}
|
||||
@@ -550,27 +550,27 @@ int dMsgObject_c::_draw() {
|
||||
int dMsgObject_c::_delete() {
|
||||
mpResCont->destroyResource_all();
|
||||
if (mpScrnDraw != NULL) {
|
||||
delete mpScrnDraw;
|
||||
JKR_DELETE(mpScrnDraw);
|
||||
mpScrnDraw = 0;
|
||||
}
|
||||
mpMsgDt = 0;
|
||||
mpMsgRes = 0;
|
||||
field_0x12c = 0;
|
||||
if (mpOutFont != NULL) {
|
||||
delete mpOutFont;
|
||||
JKR_DELETE(mpOutFont);
|
||||
mpOutFont = NULL;
|
||||
}
|
||||
delete mpResCont;
|
||||
JKR_DELETE(mpResCont);
|
||||
mpResCont = NULL;
|
||||
delete mpRefer;
|
||||
JKR_DELETE(mpRefer);
|
||||
mpRefer = NULL;
|
||||
delete mpSeqProc;
|
||||
JKR_DELETE(mpSeqProc);
|
||||
mpSeqProc = NULL;
|
||||
delete mpRenProc;
|
||||
JKR_DELETE(mpRenProc);
|
||||
mpRenProc = NULL;
|
||||
delete field_0x124;
|
||||
JKR_DELETE(field_0x124);
|
||||
field_0x124 = NULL;
|
||||
delete mpMsgString;
|
||||
JKR_DELETE(mpMsgString);
|
||||
mpMsgString = NULL;
|
||||
if (mpTalkHeap != NULL) {
|
||||
mpTalkHeap = NULL;
|
||||
@@ -1335,7 +1335,7 @@ void dMsgObject_c::talkStartInit() {
|
||||
bool local_98 = false;
|
||||
if (mpOutFont == NULL) {
|
||||
OS_REPORT("free size (0x%x)=====> %d\n", mDoExt_getCurrentHeap(), mDoExt_getCurrentHeap()->getTotalFreeSize());
|
||||
mpOutFont = new COutFont_c(0);
|
||||
mpOutFont = JKR_NEW COutFont_c(0);
|
||||
JUT_ASSERT(3035, mpOutFont != NULL);
|
||||
mpOutFont->createPane();
|
||||
mpRenProc->setOutFont(mpOutFont);
|
||||
@@ -1345,7 +1345,7 @@ void dMsgObject_c::talkStartInit() {
|
||||
switch (mFukiKind) {
|
||||
case 9:
|
||||
pRef = (jmessage_tReference*)mpRenProc->getReference();
|
||||
pData = new dMsgScrnItem_c(pRef->getFukiPosType(), pRef->getForm(), mpTalkHeap);
|
||||
pData = JKR_NEW dMsgScrnItem_c(pRef->getFukiPosType(), pRef->getForm(), mpTalkHeap);
|
||||
JUT_ASSERT(3049, pData != NULL);
|
||||
mpScrnDraw = pData;
|
||||
break;
|
||||
@@ -1353,32 +1353,32 @@ void dMsgObject_c::talkStartInit() {
|
||||
if (mFukiKind == 15) {
|
||||
local_30 = mDoExt_getRubyFont();
|
||||
}
|
||||
pData = new dMsgScrnTree_c(local_30, mpTalkHeap);
|
||||
pData = JKR_NEW dMsgScrnTree_c(local_30, mpTalkHeap);
|
||||
JUT_ASSERT(3061, pData != NULL);
|
||||
mpScrnDraw = pData;
|
||||
break;
|
||||
case 6:
|
||||
pData = new dMsgScrnKanban_c(mpTalkHeap);
|
||||
pData = JKR_NEW dMsgScrnKanban_c(mpTalkHeap);
|
||||
JUT_ASSERT(3069, pData != NULL);
|
||||
mpScrnDraw = pData;
|
||||
break;
|
||||
case 7:
|
||||
pData = new dMsgScrnStaff_c(((jmessage_tReference*)mpRenProc->getReference())->getArrange());
|
||||
pData = JKR_NEW dMsgScrnStaff_c(((jmessage_tReference*)mpRenProc->getReference())->getArrange());
|
||||
JUT_ASSERT(3083, pData != NULL);
|
||||
mpScrnDraw = pData;
|
||||
break;
|
||||
case 12:
|
||||
pData = new dMsgScrnPlace_c();
|
||||
pData = JKR_NEW dMsgScrnPlace_c();
|
||||
JUT_ASSERT(3092, pData != NULL);
|
||||
mpScrnDraw = pData;
|
||||
break;
|
||||
case 19:
|
||||
pData = new dMsgScrnBoss_c();
|
||||
pData = JKR_NEW dMsgScrnBoss_c();
|
||||
JUT_ASSERT(3100, pData != NULL);
|
||||
mpScrnDraw = pData;
|
||||
break;
|
||||
case 17:
|
||||
pData = new dMsgScrnHowl_c();
|
||||
pData = JKR_NEW dMsgScrnHowl_c();
|
||||
JUT_ASSERT(3108, pData != NULL);
|
||||
mpScrnDraw = pData;
|
||||
local_98 = true;
|
||||
@@ -1386,7 +1386,7 @@ void dMsgObject_c::talkStartInit() {
|
||||
case 1:
|
||||
case 5:
|
||||
pRef = (jmessage_tReference*)mpRenProc->getReference();
|
||||
pData = new dMsgScrnJimaku_c(pRef->getForm(), mpTalkHeap);
|
||||
pData = JKR_NEW dMsgScrnJimaku_c(pRef->getForm(), mpTalkHeap);
|
||||
JUT_ASSERT(3119, pData != NULL);
|
||||
mpScrnDraw = pData;
|
||||
break;
|
||||
@@ -1395,11 +1395,11 @@ void dMsgObject_c::talkStartInit() {
|
||||
default:
|
||||
pRef = (jmessage_tReference*)mpRenProc->getReference();
|
||||
if (mpRefer->getMsgID() == 0x2a5) {
|
||||
pData = new dMsgScrnItem_c(0, pRef->getForm(), mpTalkHeap);
|
||||
pData = JKR_NEW dMsgScrnItem_c(0, pRef->getForm(), mpTalkHeap);
|
||||
JUT_ASSERT(3131, pData != NULL);
|
||||
mpScrnDraw = pData;
|
||||
} else {
|
||||
pData = new dMsgScrnTalk_c(pRef->getFukiPosType(), pRef->getForm(), mpTalkHeap);
|
||||
pData = JKR_NEW dMsgScrnTalk_c(pRef->getFukiPosType(), pRef->getForm(), mpTalkHeap);
|
||||
JUT_ASSERT(3138, pData != NULL);
|
||||
mpScrnDraw = pData;
|
||||
local_98 = true;
|
||||
@@ -1508,11 +1508,11 @@ u16 dMsgObject_c::getStatusLocal() {
|
||||
|
||||
void dMsgObject_c::delete_screen(bool param_1) {
|
||||
if (mpOutFont != NULL) {
|
||||
delete mpOutFont;
|
||||
JKR_DELETE(mpOutFont);
|
||||
mpOutFont = NULL;
|
||||
}
|
||||
if (mpScrnDraw != NULL) {
|
||||
delete mpScrnDraw;
|
||||
JKR_DELETE(mpScrnDraw);
|
||||
mpScrnDraw = NULL;
|
||||
if (param_1 && dComIfGp_isHeapLockFlag() == 5)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user