Merge branch 'fix-runtime-errors' into 'fix-asserts'

Fix errors revealed by PARANOIA

See merge request KartKrew/Kart!925
This commit is contained in:
toaster 2023-02-17 00:44:03 +00:00
commit baaec4c197
4 changed files with 35 additions and 6 deletions

View file

@ -6088,7 +6088,20 @@ const char *COLOR_ENUMS[] = {
"CHAOSEMERALD6", "CHAOSEMERALD6",
"CHAOSEMERALD7", "CHAOSEMERALD7",
"INVINCFLASH" "INVINCFLASH",
"POSNUM",
"POSNUM_WIN1",
"POSNUM_WIN2",
"POSNUM_WIN3",
"POSNUM_LOSE1",
"POSNUM_LOSE2",
"POSNUM_LOSE3",
"POSNUM_BEST1",
"POSNUM_BEST2",
"POSNUM_BEST3",
"POSNUM_BEST4",
"POSNUM_BEST5",
"POSNUM_BEST6",
}; };
const char *const KARTHUD_LIST[] = { const char *const KARTHUD_LIST[] = {

View file

@ -2015,7 +2015,10 @@ void G_RecordDemo(const char *name)
// if (demobuf.buffer) // if (demobuf.buffer)
// Z_Free(demobuf.buffer); // Z_Free(demobuf.buffer);
// FIXME: this file doesn't manage its memory and actually free this when it's done using it
Z_Free(demobuf.buffer);
P_SaveBufferAlloc(&demobuf, maxsize); P_SaveBufferAlloc(&demobuf, maxsize);
Z_SetUser(demobuf.buffer, (void**)&demobuf.buffer);
demobuf.p = NULL; demobuf.p = NULL;
demo.recording = true; demo.recording = true;
@ -2028,7 +2031,10 @@ void G_RecordMetal(void)
if (M_CheckParm("-maxdemo") && M_IsNextParm()) if (M_CheckParm("-maxdemo") && M_IsNextParm())
maxsize = atoi(M_GetNextParm()) * 1024; maxsize = atoi(M_GetNextParm()) * 1024;
// FIXME: this file doesn't manage its memory and actually free this when it's done using it
Z_Free(demobuf.buffer);
P_SaveBufferAlloc(&demobuf, maxsize); P_SaveBufferAlloc(&demobuf, maxsize);
Z_SetUser(demobuf.buffer, (void**)&demobuf.buffer);
demobuf.p = NULL; demobuf.p = NULL;
metalrecording = true; metalrecording = true;
@ -3051,7 +3057,10 @@ void G_DoPlayDemo(char *defdemoname)
return; return;
} }
// FIXME: this file doesn't manage its memory and actually free this when it's done using it
Z_Free(demobuf.buffer);
P_SaveBufferAlloc(&demobuf, vLump->size); P_SaveBufferAlloc(&demobuf, vLump->size);
Z_SetUser(demobuf.buffer, (void**)&demobuf.buffer);
memcpy(demobuf.buffer, vLump->data, vLump->size); memcpy(demobuf.buffer, vLump->data, vLump->size);
vres_Free(vRes); vres_Free(vRes);

View file

@ -1245,7 +1245,14 @@ static patch_t *R_CacheSpriteBrightMap(const spriteinfo_t *sprinfo, UINT8 frame)
name = sprinfo->bright[SPRINFO_DEFAULT_PIVOT]; name = sprinfo->bright[SPRINFO_DEFAULT_PIVOT];
} }
return W_CachePatchNum(W_CheckNumForLongName(name), PU_SPRITE); const lumpnum_t num = W_CheckNumForLongName(name);
if (num == LUMPERROR)
{
return NULL;
}
return W_CachePatchNum(num, PU_SPRITE);
} }
// //

View file

@ -989,8 +989,8 @@ void S_UpdateClosedCaptions(void)
void S_SetSfxVolume(INT32 volume) void S_SetSfxVolume(INT32 volume)
{ {
CV_SetValue(&cv_soundvolume, volume); //CV_SetValue(&cv_soundvolume, volume);
actualsfxvolume = cv_soundvolume.value * USER_VOLUME_SCALE; actualsfxvolume = volume * USER_VOLUME_SCALE;
#ifdef HW3SOUND #ifdef HW3SOUND
hws_mode == HWS_DEFAULT_MODE ? I_SetSfxVolume(volume&0x1F) : HW3S_SetSfxVolume(volume&0x1F); hws_mode == HWS_DEFAULT_MODE ? I_SetSfxVolume(volume&0x1F) : HW3S_SetSfxVolume(volume&0x1F);
@ -2349,8 +2349,8 @@ void S_SetMusicVolume(INT32 digvolume)
if (digvolume < 0) if (digvolume < 0)
digvolume = cv_digmusicvolume.value; digvolume = cv_digmusicvolume.value;
CV_SetValue(&cv_digmusicvolume, digvolume); //CV_SetValue(&cv_digmusicvolume, digvolume);
actualdigmusicvolume = cv_digmusicvolume.value * USER_VOLUME_SCALE; actualdigmusicvolume = digvolume * USER_VOLUME_SCALE;
I_SetMusicVolume(digvolume); I_SetMusicVolume(digvolume);
} }