Fix multiple classes being inappropriately zero-initialized via JKR_NEW* (#70)

This might also fix #71 and #72.
This commit is contained in:
Max Roncace
2026-03-13 02:50:06 -04:00
parent 2d430eb9a1
commit 9fff8d45a1
25 changed files with 73 additions and 73 deletions
+1 -1
View File
@@ -23,7 +23,7 @@ SpkSystem::SpkSystem(JKRHeap* heap) : JASGlobalInstance(true) {
mHeap = heap;
mMixingBuffer = JKR_NEW_ARGS (heap, 0) SpkMixingBuffer(heap);
JUT_ASSERT(35, mMixingBuffer);
mSoundHolder = JKR_NEW_ARGS (heap, 0) SpkSoundHolder();
mSoundHolder = JKR_NEW_ARGS (heap, 0) SpkSoundHolder;
JUT_ASSERT(38, mSoundHolder);
SpkSpeakerCtrl::setup();
SpkSpeakerCtrl::setMixingBuffer(mMixingBuffer);
+15 -15
View File
@@ -43,27 +43,27 @@ void Z2DebugSys::initJAW() {
JKRSetCurrentHeap(heap);
u32 local_50 = heap->getFreeSize();
soundPlayer = JKR_NEW_ARGS (heap, 0) Z2SoundPlayer("GC-Zelda2");
sysMemView = JKR_NEW_ARGS (heap, 0) JAWSysMemView();
bankView = JKR_NEW_ARGS (heap, 0) JAWBankView();
chView = JKR_NEW_ARGS (heap, 0) JAWChView();
sysMemView = JKR_NEW_ARGS (heap, 0) JAWSysMemView;
bankView = JKR_NEW_ARGS (heap, 0) JAWBankView;
chView = JKR_NEW_ARGS (heap, 0) JAWChView;
trackView = JKR_NEW_ARGS (heap, 0) Z2TrackView(0, Z2TrackView::DISPMODE0);
reportView = JKR_NEW_ARGS (heap, 0) JAWReportView();
reportView = JKR_NEW_ARGS (heap, 0) JAWReportView;
JASReportInit(heap, 500);
hioBankEdit = JKR_NEW_ARGS (heap, 0) JAWHioBankEdit();
waveArcLoader = JKR_NEW_ARGS (heap, 0) Z2WaveArcLoader();
hioBankEdit = JKR_NEW_ARGS (heap, 0) JAWHioBankEdit;
waveArcLoader = JKR_NEW_ARGS (heap, 0) Z2WaveArcLoader;
volume = JKR_NEW_ARGS (heap, 0) JAWVolume(90, 480);
playSeView = JKR_NEW_ARGS (heap, 0) Z2PlaySeView();
audSettingView = JKR_NEW_ARGS (heap, 0) Z2AudSettingView();
dspCheck = JKR_NEW_ARGS (heap, 0) Z2DSPCheck();
playSeView = JKR_NEW_ARGS (heap, 0) Z2PlaySeView;
audSettingView = JKR_NEW_ARGS (heap, 0) Z2AudSettingView;
dspCheck = JKR_NEW_ARGS (heap, 0) Z2DSPCheck;
JAWExtSystem::registWindow(1, soundPlayer, 10, 22);
entrySeView = JKR_NEW_ARGS (heap, 0) Z2EntrySeView();
entrySeView = JKR_NEW_ARGS (heap, 0) Z2EntrySeView;
JAWExtSystem::registWindow(2, entrySeView, 10, 22);
JAWExtSystem::registWindow(3, playSeView, 10, 22);
JAWExtSystem::registWindow(4, sysMemView, 10, 22);
JAWExtSystem::registWindow(5, bankView, 10, 22);
JAWExtSystem::registWindow(6, chView, 10, 22);
JAWExtSystem::registWindow(7, trackView, 10, 22);
playerChView = JKR_NEW_ARGS (heap, 0) JAWPlayerChView();
playerChView = JKR_NEW_ARGS (heap, 0) JAWPlayerChView;
JAWExtSystem::registWindow(8, playerChView, 10, 22);
JAWExtSystem::registWindow(11, reportView, 330, 0);
JAWExtSystem::registWindow(12, hioBankEdit, 10, 0);
@@ -85,16 +85,16 @@ void Z2DebugSys::initSoundHioNode() {
JAHSingletonBase<JAHioMgr>::getIns()->init_OnGame();
JAHSingletonBase<JAHioMgr>::getIns()->appendRootNode(&mDoHIO_root, soundRoot);
mDoHIO_createChild("サウンド", soundRoot);
JAHSoundPlayerNode* soundPlayerNode = JKR_NEW_ARGS (heap, 0) JAHSoundPlayerNode();
JAHSoundPlayerNode* soundPlayerNode = JKR_NEW_ARGS (heap, 0) JAHSoundPlayerNode;
JUT_ASSERT(258, soundPlayerNode);
soundRoot->appendNode(soundPlayerNode, NULL);
Z2ParamNode* paramNode = JKR_NEW_ARGS (heap, 0) Z2ParamNode();
Z2ParamNode* paramNode = JKR_NEW_ARGS (heap, 0) Z2ParamNode;
JUT_ASSERT(262, paramNode);
soundRoot->appendNode(paramNode, NULL);
Z2FxLineEditNode* fxNode = JKR_NEW_ARGS (heap, 0) Z2FxLineEditNode(heap);
JUT_ASSERT(267, fxNode);
soundRoot->appendNode(fxNode, NULL);
Z2F1SwingTestNode* f1TestWin = JKR_NEW_ARGS (heap, 0) Z2F1SwingTestNode();
Z2F1SwingTestNode* f1TestWin = JKR_NEW_ARGS (heap, 0) Z2F1SwingTestNode;
JUT_ASSERT(284, f1TestWin);
soundRoot->appendNode(f1TestWin, NULL);
JAWExtSystem::registWindow(10, f1TestWin, 10, 22);
@@ -111,7 +111,7 @@ JAISeqDataMgr* Z2DebugSys::initSeSeqDataMgr(const void* param_1) {
JKRExpHeap* heap = mDoExt_getGameHeap();
JKRSetCurrentHeap(heap);
s32 freeSize = heap->getFreeSize();
JAWHioReceiver* receiver = JKR_NEW_ARGS (heap, 0) JAWHioReceiver();
JAWHioReceiver* receiver = JKR_NEW_ARGS (heap, 0) JAWHioReceiver;
JAWExtSystem::registWindow(0, receiver, 10, 22);
seqDataMgr = JKR_NEW_ARGS (heap, 0) Z2HioSeSeqDataMgr(param_1, receiver);
JKRSetCurrentHeap(oldHeap);
+1 -1
View File
@@ -8,7 +8,7 @@
static const char l_arcName[] = "Always";
int dkWpillar_c::create() {
JKR_NEW_ARGS (this) dkWpillar_c();
JKR_NEW_ARGS (this) dkWpillar_c;
int roomNo;
u8 envrOverride;
+2 -2
View File
@@ -1229,7 +1229,7 @@ void dKyr_housi_move() {
void dKyr_snow_init() {
camera_class* camera = (camera_class*)dComIfGp_getCamera(0);
g_env_light.mpSnowPacket = JKR_NEW_ARGS (32) dKankyo_snow_Packet();
g_env_light.mpSnowPacket = JKR_NEW_ARGS (32) dKankyo_snow_Packet;
if (g_env_light.mpSnowPacket == NULL) {
return;
@@ -1523,7 +1523,7 @@ void dKyr_snow_move() {
void dKyr_star_init() {
camera_class* camera = (camera_class*)dComIfGp_getCamera(0);
g_env_light.mpStarPacket = JKR_NEW_ARGS (32) dKankyo_star_Packet();
g_env_light.mpStarPacket = JKR_NEW_ARGS (32) dKankyo_star_Packet;
if (g_env_light.mpStarPacket == NULL) {
return;
+9 -9
View File
@@ -433,8 +433,8 @@ static void wether_move_sun() {
switch (g_env_light.mSunInitialized) {
case FALSE:
if (sunVisible && dKy_darkworld_check() != true) {
g_env_light.mpSunPacket = JKR_NEW_ARGS (0x20) dKankyo_sun_Packet();
g_env_light.mpSunLenzPacket = JKR_NEW_ARGS (0x20) dKankyo_sunlenz_Packet();
g_env_light.mpSunPacket = JKR_NEW_ARGS (0x20) dKankyo_sun_Packet;
g_env_light.mpSunLenzPacket = JKR_NEW_ARGS (0x20) dKankyo_sunlenz_Packet;
if (g_env_light.mpSunPacket != NULL && g_env_light.mpSunLenzPacket != NULL) {
g_env_light.mpSunPacket->mpResMoon = (u8*)dComIfG_getStageRes("F_moon.bti");
g_env_light.mpSunPacket->mpResMoon_A = (u8*)dComIfG_getStageRes("F_moon_A.bti");
@@ -516,7 +516,7 @@ static void wether_move_rain() {
switch (g_env_light.mRainInitialized) {
case FALSE:
if (g_env_light.raincnt > 3) {
g_env_light.mpRainPacket = JKR_NEW_ARGS (32) dKankyo_rain_Packet();
g_env_light.mpRainPacket = JKR_NEW_ARGS (32) dKankyo_rain_Packet;
if (g_env_light.mpRainPacket != NULL) {
dKyr_rain_init();
@@ -705,7 +705,7 @@ static void wether_move_housi() {
switch (g_env_light.mHousiInitialized) {
case FALSE:
if (g_env_light.mHousiCount != 0) {
g_env_light.mpHousiPacket = JKR_NEW_ARGS (32) dKankyo_housi_Packet();
g_env_light.mpHousiPacket = JKR_NEW_ARGS (32) dKankyo_housi_Packet;
if (g_env_light.mpHousiPacket != NULL) {
if (dKy_darkworld_check() == true) {
@@ -764,7 +764,7 @@ static void wether_move_odour() {
switch (g_env_light.mOdourData.mOdourPacketStatus) {
case 0:
if (g_env_light.mOdourData.field_0xf21 != 0) {
g_env_light.mOdourData.mpOdourPacket = JKR_NEW_ARGS (32) dKankyo_odour_Packet();
g_env_light.mOdourData.mpOdourPacket = JKR_NEW_ARGS (32) dKankyo_odour_Packet;
if (g_env_light.mOdourData.mpOdourPacket != NULL) {
g_env_light.mOdourData.mpOdourPacket->mpResTex = (u8*)dComIfG_getObjectRes("Always", 0x53);
@@ -798,7 +798,7 @@ static void wether_move_moya() {
switch (g_env_light.mCloudInitialized) {
case 0:
if (g_env_light.mMoyaCount != 0) {
g_env_light.mpCloudPacket = JKR_NEW_ARGS (32) dKankyo_cloud_Packet();
g_env_light.mpCloudPacket = JKR_NEW_ARGS (32) dKankyo_cloud_Packet;
if (g_env_light.mpCloudPacket != NULL) {
g_env_light.mpCloudPacket->mpResTex = (u8*)dComIfG_getObjectRes("Always", 0x53);
@@ -884,7 +884,7 @@ static void wether_move_vrkumo() {
switch (g_env_light.mVrkumoStatus) {
case 0:
if (g_env_light.mVrkumoCount != 0) {
g_env_light.mpVrkumoPacket = JKR_NEW_ARGS (0x20) dKankyo_vrkumo_Packet();
g_env_light.mpVrkumoPacket = JKR_NEW_ARGS (0x20) dKankyo_vrkumo_Packet;
if (g_env_light.mpVrkumoPacket == NULL) {
return;
}
@@ -964,7 +964,7 @@ static void wether_move_mud() {
switch (g_env_light.mMudInitialized) {
case 0:
if (g_env_light.field_0x1048 != 0) {
g_env_light.mpMudPacket = JKR_NEW_ARGS (32) dKankyo_mud_Packet();
g_env_light.mpMudPacket = JKR_NEW_ARGS (32) dKankyo_mud_Packet;
if (g_env_light.mpMudPacket != NULL) {
dKyr_mud_init();
@@ -990,7 +990,7 @@ static void wether_move_evil() {
switch (g_env_light.mEvilInitialized & 0xF) {
case 0:
if (g_env_light.field_0x1054 != 0) {
g_env_light.mpEvilPacket = JKR_NEW_ARGS (32) dKankyo_evil_Packet();
g_env_light.mpEvilPacket = JKR_NEW_ARGS (32) dKankyo_evil_Packet;
if (g_env_light.mpEvilPacket != NULL) {
dKyr_evil_init();
+1 -1
View File
@@ -152,7 +152,7 @@ int dThunder_c::create() {
f32 var_r28;
f32 var_r27;
JKR_NEW_ARGS (this) dThunder_c();
JKR_NEW_ARGS (this) dThunder_c;
J3DModelData* modelData;
if (cM_rndF(1.0f) < 0.5f) {
+1 -1
View File
@@ -662,7 +662,7 @@ void dMenu_FmapMap_c::setTexture(u16 i_width, u16 i_height, u16 param_2, u16 par
int size = GXGetTexBufferSize(i_width, i_height, GX_TF_C8, 0, 0);
mMapImage_p = JKR_NEW_ARRAY_ARGS(u8, size, 0x20);
init(mMapImage_p, i_width, i_height, param_2, param_3);
mResTIMG = JKR_NEW_ARGS (0x20) ResTIMG();
mResTIMG = JKR_NEW_ARGS (0x20) ResTIMG;
makeResTIMG(mResTIMG, i_width, i_height, mMapImage_p, (u8*)m_palette, 0x1b);
}
+1 -1
View File
@@ -234,7 +234,7 @@ static int dOvlpFd2_Delete(dOvlpFd2_c* i_this) {
}
static int dOvlpFd2_Create(void* i_this) {
JKR_NEW_ARGS (i_this) dOvlpFd2_c();
JKR_NEW_ARGS (i_this) dOvlpFd2_c;
return cPhs_COMPLEATE_e;
}
+1 -1
View File
@@ -252,7 +252,7 @@ static int dOvlpFd3_Delete(dOvlpFd3_c* i_this) {
}
static int dOvlpFd3_Create(void* i_this) {
JKR_NEW_ARGS (i_this) dOvlpFd3_c();
JKR_NEW_ARGS (i_this) dOvlpFd3_c;
return cPhs_COMPLEATE_e;
}
+1 -1
View File
@@ -1454,7 +1454,7 @@ void dScnLogo_c::dvdDataLoad() {
static int dScnLogo_Create(scene_class* i_this) {
DuskLog.debug("[DIAG] dScnLogo_Create: entry i_this={}", (void*)i_this);
return (JKR_NEW_ARGS (i_this) dScnLogo_c())->create();
return (JKR_NEW_ARGS (i_this) dScnLogo_c)->create();
}
static int dScnLogo_Execute(dScnLogo_c* i_this) {
+1 -1
View File
@@ -408,7 +408,7 @@ static int dScnName_Delete(dScnName_c* i_this) {
}
static int dScnName_Create(scene_class* i_this) {
JKR_NEW_ARGS (i_this) dScnName_c();
JKR_NEW_ARGS (i_this) dScnName_c;
return static_cast<dScnName_c*>(i_this)->create();
}
+2 -2
View File
@@ -321,9 +321,9 @@ s32 mDoDvdThd_mountAramArchive_c::execute() {
BOOL result = FALSE;
if (!mArchive) {
if (mMountDirection == 0) {
mArchive = JKR_NEW_ARGS (heap, 0x20) JKRAramArchive();
mArchive = JKR_NEW_ARGS (heap, 0x20) JKRAramArchive;
} else {
mArchive = JKR_NEW_ARGS (heap, -0x20) JKRAramArchive();
mArchive = JKR_NEW_ARGS (heap, -0x20) JKRAramArchive;
}
#if DEBUG
if (mDoDvdThd::verbose) {