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
+12 -12
View File
@@ -187,7 +187,7 @@ mDoDvdThd_callback_c::mDoDvdThd_callback_c(mDoDvdThd_callback_func pFunc, void*
mDoDvdThd_callback_c* mDoDvdThd_callback_c::create(mDoDvdThd_callback_func pFunc, void* pData) {
mDoDvdThd_callback_c* callCmd =
new (mDoExt_getCommandHeap(), -4) mDoDvdThd_callback_c(pFunc, pData);
JKR_NEW_ARGS (mDoExt_getCommandHeap(), -4) mDoDvdThd_callback_c(pFunc, pData);
if (callCmd != NULL) {
mDoDvdThd::l_param.addition(callCmd);
if (mDoDvdThd::DVDLogoMode) {
@@ -218,12 +218,12 @@ mDoDvdThd_mountArchive_c::mDoDvdThd_mountArchive_c(u8 param_0) {
mDoDvdThd_mountArchive_c* mDoDvdThd_mountArchive_c::create(char const* pArchivePath,
u8 mountDirection, JKRHeap* pHeap) {
mDoDvdThd_mountArchive_c* mountArcCmd =
new (mDoExt_getCommandHeap(), -4) mDoDvdThd_mountArchive_c(mountDirection);
JKR_NEW_ARGS (mDoExt_getCommandHeap(), -4) mDoDvdThd_mountArchive_c(mountDirection);
if (mountArcCmd != NULL) {
mountArcCmd->mEntryNumber = my_DVDConvertPathToEntrynum(pArchivePath);
if (mountArcCmd->mEntryNumber == -1) {
mountArcCmd->mIsDone = true;
delete mountArcCmd;
JKR_DELETE(mountArcCmd);
mountArcCmd = NULL;
} else {
mountArcCmd->mHeap = pHeap;
@@ -262,10 +262,10 @@ s32 mDoDvdThd_mountArchive_c::execute() {
#endif
if (mMountDirection == 0) {
memArchive =
new (heap, 0) JKRMemArchive(mEntryNumber, JKRArchive::MOUNT_DIRECTION_HEAD);
JKR_NEW_ARGS (heap, 0) JKRMemArchive(mEntryNumber, JKRArchive::MOUNT_DIRECTION_HEAD);
} else {
memArchive =
new (heap, -4) JKRMemArchive(mEntryNumber, JKRArchive::MOUNT_DIRECTION_TAIL);
JKR_NEW_ARGS (heap, -4) JKRMemArchive(mEntryNumber, JKRArchive::MOUNT_DIRECTION_TAIL);
}
if (memArchive != NULL && memArchive->isMounted()) {
mArchive = memArchive;
@@ -281,7 +281,7 @@ s32 mDoDvdThd_mountArchive_c::execute() {
OSReport_Error("mDoDvdThd_mountArchive_c::execute マウント失敗\n");
OS_REPORT_ERROR("Name = %s\n", mDoDvdHack::ConvertEntrynumToName(mEntryNumber));
if (memArchive) {
delete memArchive;
JKR_DELETE(memArchive);
}
memArchive = NULL;
#if PLATFORM_GCN
@@ -326,9 +326,9 @@ s32 mDoDvdThd_mountAramArchive_c::execute() {
BOOL result = FALSE;
if (!mArchive) {
if (mMountDirection == 0) {
mArchive = new (heap, 0x20) JKRAramArchive();
mArchive = JKR_NEW_ARGS (heap, 0x20) JKRAramArchive();
} else {
mArchive = new (heap, -0x20) JKRAramArchive();
mArchive = JKR_NEW_ARGS (heap, -0x20) JKRAramArchive();
}
#if DEBUG
if (mDoDvdThd::verbose) {
@@ -373,12 +373,12 @@ mDoDvdThd_mountXArchive_c* mDoDvdThd_mountXArchive_c::create(char const* pArchiv
JKRArchive::EMountMode mountMode,
JKRHeap* pHeap) {
mDoDvdThd_mountXArchive_c* mountXArcCmd =
new (mDoExt_getCommandHeap(), -4) mDoDvdThd_mountXArchive_c(mountDirection, mountMode);
JKR_NEW_ARGS (mDoExt_getCommandHeap(), -4) mDoDvdThd_mountXArchive_c(mountDirection, mountMode);
if (mountXArcCmd != NULL) {
mountXArcCmd->mEntryNum = my_DVDConvertPathToEntrynum(pArchivePath);
if (mountXArcCmd->mEntryNum == -1) {
mountXArcCmd->mIsDone = true;
delete mountXArcCmd;
JKR_DELETE(mountXArcCmd);
mountXArcCmd = NULL;
} else {
mountXArcCmd->mHeap = pHeap;
@@ -457,12 +457,12 @@ mDoDvdThd_toMainRam_c::mDoDvdThd_toMainRam_c(u8 param_0) {
mDoDvdThd_toMainRam_c* mDoDvdThd_toMainRam_c::create(char const* pArchivePath, u8 mountDirection,
JKRHeap* pHeap) {
mDoDvdThd_toMainRam_c* toMainRAMCmd =
new (mDoExt_getCommandHeap(), -4) mDoDvdThd_toMainRam_c(mountDirection);
JKR_NEW_ARGS (mDoExt_getCommandHeap(), -4) mDoDvdThd_toMainRam_c(mountDirection);
if (toMainRAMCmd != NULL) {
toMainRAMCmd->mEntryNum = my_DVDConvertPathToEntrynum(pArchivePath);
if (toMainRAMCmd->mEntryNum == -1) {
toMainRAMCmd->mIsDone = true;
delete toMainRAMCmd;
JKR_DELETE(toMainRAMCmd);
toMainRAMCmd = NULL;
} else {
toMainRAMCmd->mHeap = pHeap;