From 07011a7044765d51e6c2c814936d271d4b2df8d2 Mon Sep 17 00:00:00 2001 From: Jaime Ita Passos Date: Thu, 11 Aug 2022 04:21:31 -0300 Subject: [PATCH 1/2] Stop -Waddress warnings --- src/blua/ldump.c | 2 +- src/d_netcmd.c | 2 +- src/m_menu.c | 15 +++++---------- src/m_misc.c | 2 +- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/blua/ldump.c b/src/blua/ldump.c index c9d3d4870..b69a12729 100644 --- a/src/blua/ldump.c +++ b/src/blua/ldump.c @@ -60,7 +60,7 @@ static void DumpVector(const void* b, int n, size_t size, DumpState* D) static void DumpString(const TString* s, DumpState* D) { - if (s==NULL || getstr(s)==NULL) + if (s==NULL) { size_t size=0; DumpVar(size,D); diff --git a/src/d_netcmd.c b/src/d_netcmd.c index d9080d342..7417b8bf7 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -4575,7 +4575,7 @@ void Command_Retry_f(void) CONS_Printf(M_GetText("You must be in a level to use this.\n")); else if (netgame || multiplayer) CONS_Printf(M_GetText("This only works in single player.\n")); - else if (!&players[consoleplayer] || players[consoleplayer].lives <= 1) + else if (players[consoleplayer].lives <= 1) CONS_Printf(M_GetText("You can't retry without any lives remaining!\n")); else if (G_IsSpecialStage(gamemap)) CONS_Printf(M_GetText("You can't retry special stages!\n")); diff --git a/src/m_menu.c b/src/m_menu.c index 5b85f65df..06e9b7cb0 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -3686,17 +3686,12 @@ void M_StartControlPanel(void) } else { - INT32 numlives = 2; + INT32 numlives = players[consoleplayer].lives; + if (players[consoleplayer].playerstate != PST_LIVE) + ++numlives; SPauseMenu[spause_pandora].status = (M_SecretUnlocked(SECRET_PANDORA) && !marathonmode) ? (IT_STRING | IT_CALL) : (IT_DISABLED); - if (&players[consoleplayer]) - { - numlives = players[consoleplayer].lives; - if (players[consoleplayer].playerstate != PST_LIVE) - ++numlives; - } - // The list of things that can disable retrying is (was?) a little too complex // for me to want to use the short if statement syntax if (numlives <= 1 || G_IsSpecialStage(gamemap)) @@ -3754,7 +3749,7 @@ void M_StartControlPanel(void) if (G_GametypeHasTeams()) MPauseMenu[mpause_switchteam].status = IT_STRING | IT_SUBMENU; else if (G_GametypeHasSpectators()) - MPauseMenu[((&players[consoleplayer] && players[consoleplayer].spectator) ? mpause_entergame : mpause_spectate)].status = IT_STRING | IT_CALL; + MPauseMenu[players[consoleplayer].spectator ? mpause_entergame : mpause_spectate].status = IT_STRING | IT_CALL; else // in this odd case, we still want something to be on the menu even if it's useless MPauseMenu[mpause_spectate].status = IT_GRAYEDOUT; } @@ -7012,7 +7007,7 @@ static void M_RetryResponse(INT32 ch) if (ch != 'y' && ch != KEY_ENTER) return; - if (!&players[consoleplayer] || netgame || multiplayer) // Should never happen! + if (netgame || multiplayer) // Should never happen! return; M_ClearMenus(true); diff --git a/src/m_misc.c b/src/m_misc.c index d7d6d6bbb..145f457f1 100644 --- a/src/m_misc.c +++ b/src/m_misc.c @@ -833,7 +833,7 @@ static void M_PNGText(png_structp png_ptr, png_infop png_info_ptr, PNG_CONST png else snprintf(lvlttltext, 48, "Unknown"); - if (gamestate == GS_LEVEL && &players[displayplayer] && players[displayplayer].mo) + if (gamestate == GS_LEVEL && players[displayplayer].mo) snprintf(locationtxt, 40, "X:%d Y:%d Z:%d A:%d", players[displayplayer].mo->x>>FRACBITS, players[displayplayer].mo->y>>FRACBITS, From c27d7f916f611b66156d1d629534d866182b87dd Mon Sep 17 00:00:00 2001 From: Jaime Ita Passos Date: Thu, 11 Aug 2022 04:30:03 -0300 Subject: [PATCH 2/2] Stop -Wuse-after-free warnings --- src/filesrch.c | 2 +- src/w_wad.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/filesrch.c b/src/filesrch.c index ec095518e..3f901b695 100644 --- a/src/filesrch.c +++ b/src/filesrch.c @@ -712,9 +712,9 @@ lumpinfo_t *getdirectoryfiles(const char *path, UINT16 *nlmp, UINT16 *nfolders) // Close any open directories and return if something went wrong. if (failure) { + for (; depthleft < maxdirdepth; closedir(dirhandle[depthleft++])); free(dirpathindex); free(dirhandle); - for (; depthleft < maxdirdepth; closedir(dirhandle[depthleft++])); return NULL; } diff --git a/src/w_wad.c b/src/w_wad.c index cf954a55e..368a879a4 100644 --- a/src/w_wad.c +++ b/src/w_wad.c @@ -641,8 +641,6 @@ static lumpinfo_t* ResGetLumpsZip (FILE* handle, UINT16* nlmp) lump_p->fullname = Z_Calloc(zentry.namelen + 1, PU_STATIC, NULL); strncpy(lump_p->fullname, fullname, zentry.namelen); - free(fullname); - switch(zentry.compression) { case 0: @@ -662,6 +660,8 @@ static lumpinfo_t* ResGetLumpsZip (FILE* handle, UINT16* nlmp) break; } + free(fullname); + // skip and ignore comments/extra fields if (fseek(handle, zentry.xtralen + zentry.commlen, SEEK_CUR) != 0) {