On second thoughts, let's be EXTRA careful to avoid any potential double frees.

This commit is contained in:
toaster 2023-07-17 18:20:22 +01:00
parent bf8d09980d
commit 859b3fa350

View file

@ -3061,7 +3061,7 @@ void G_DoPlayDemo(const char *defdemoname)
else else
{ {
// FIXME: this file doesn't manage its memory and actually free this when it's done using it // FIXME: this file doesn't manage its memory and actually free this when it's done using it
Z_Free(demobuf.buffer); //Z_Free(demobuf.buffer);
demobuf.buffer = NULL; demobuf.buffer = NULL;
n = defdemoname+strlen(defdemoname); n = defdemoname+strlen(defdemoname);
@ -4183,13 +4183,19 @@ boolean G_CheckDemoStatus(void)
return true; return true;
} }
if (demo.recording && (modeattacking || demo.savemode != DSM_NOTSAVING)) if (!demo.recording)
return false;
if (modeattacking || demo.savemode != DSM_NOTSAVING)
{ {
G_SaveDemo(); G_SaveDemo();
return true; return true;
} }
Z_Free(demobuf.buffer);
demo.recording = false; demo.recording = false;
return false; return false;
} }