Skip to content

Commit 66502a8

Browse files
committed
Delay playback mode assignment until after replay file opens successfully
1 parent bf32f04 commit 66502a8

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

Generals/Code/GameEngine/Source/Common/Recorder.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1196,7 +1196,8 @@ Bool RecorderClass::playbackFile(AsciiString filename)
11961196
}
11971197
}
11981198

1199-
m_mode = RECORDERMODETYPE_PLAYBACK;
1199+
// TheSuperHackers @bugfix bobtista Don't set playback mode until after file opens successfully
1200+
// to prevent crash if playback is updated while m_file is NULL
12001201

12011202
ReplayHeader header;
12021203
header.forPlayback = TRUE;
@@ -1207,6 +1208,8 @@ Bool RecorderClass::playbackFile(AsciiString filename)
12071208
return FALSE;
12081209
}
12091210

1211+
m_mode = RECORDERMODETYPE_PLAYBACK;
1212+
12101213
#ifdef DEBUG_CRASHING
12111214
Bool versionStringDiff = header.versionString != TheVersion->getUnicodeVersion();
12121215
Bool versionTimeStringDiff = header.versionTimeString != TheVersion->getUnicodeBuildTime();

GeneralsMD/Code/GameEngine/Source/Common/Recorder.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1199,7 +1199,8 @@ Bool RecorderClass::playbackFile(AsciiString filename)
11991199
}
12001200
}
12011201

1202-
m_mode = RECORDERMODETYPE_PLAYBACK;
1202+
// TheSuperHackers @bugfix bobtista Don't set playback mode until after file opens successfully
1203+
// to prevent crash if playback is updated while m_file is NULL
12031204

12041205
ReplayHeader header;
12051206
header.forPlayback = TRUE;
@@ -1210,6 +1211,8 @@ Bool RecorderClass::playbackFile(AsciiString filename)
12101211
return FALSE;
12111212
}
12121213

1214+
m_mode = RECORDERMODETYPE_PLAYBACK;
1215+
12131216
#ifdef DEBUG_CRASHING
12141217
Bool versionStringDiff = header.versionString != TheVersion->getUnicodeVersion();
12151218
Bool versionTimeStringDiff = header.versionTimeString != TheVersion->getUnicodeBuildTime();

0 commit comments

Comments
 (0)