From f4ade524fe33f0c821036b4c210f77a55855da47 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Fri, 16 Oct 2020 02:26:45 +0200 Subject: [PATCH] Client: Fixed some warnings and some added some paranoid free() calls. --- src/client/entry.c | 4 +++- src/client/sentences.c | 23 +++++++++++++---------- src/client/titles.c | 11 +++++++++++ src/gs-entbase/server/func_tracktrain.cpp | 3 ++- src/gs-entbase/server/func_vehicle.cpp | 3 ++- src/plugins/chatsounds.c | 2 +- src/server/nodes.c | 4 ++-- src/server/sentences.c | 2 +- src/shared/sound.c | 13 ++++++++++--- 9 files changed, 45 insertions(+), 20 deletions(-) diff --git a/src/client/entry.c b/src/client/entry.c index bb13d067..944aeb6d 100644 --- a/src/client/entry.c +++ b/src/client/entry.c @@ -884,5 +884,7 @@ Incase you need to free something void CSQC_Shutdown(void) { - + Sentences_Shutdown(); + Titles_Shutdown(); + Sound_Shutdown(); } diff --git a/src/client/sentences.c b/src/client/sentences.c index 4b3ce821..ad85b3ea 100644 --- a/src/client/sentences.c +++ b/src/client/sentences.c @@ -77,6 +77,17 @@ typedef struct var string g_sentences_samplepath; +void +Sentences_Shutdown(void) +{ +#ifdef DYNAMIC_SENTENCES + if (g_sentences) + memfree(g_sentences); +#endif + + g_sentences_count = 0; +} + void Sentences_Init(void) { @@ -84,15 +95,7 @@ Sentences_Init(void) string temp; int c, i; - if (g_sentences_count > 0) { - g_sentences_count = 0; - -#ifndef DYNAMIC_SENTENCES - if (g_sentences) { - memfree(g_sentences); - } -#endif - } + Sentences_Shutdown(); fs_sentences = fopen("sound/sentences.txt", FILE_READ); @@ -117,7 +120,7 @@ Sentences_Init(void) /* allocate memory and increase count */ #ifdef DYNAMIC_SENTENCES g_sentences_count++; - g_sentences = memrealloc(g_sentences, + g_sentences = (sentences_t *)memrealloc(g_sentences, sizeof(sentences_t), x, g_sentences_count); diff --git a/src/client/titles.c b/src/client/titles.c index d0959424..5e3e9f36 100644 --- a/src/client/titles.c +++ b/src/client/titles.c @@ -57,6 +57,15 @@ Titles_ParseFunString(string temp) return temp; } +void +Titles_Shutdown(void) +{ + if (g_titles) + memfree(g_titles); + + g_titles_count = 0; +} + void Titles_Init(void) { @@ -77,6 +86,8 @@ Titles_Init(void) int braced; int id = 0; + Titles_Shutdown(); + fs_titles = fopen("titles.txt", FILE_READ); if (fs_titles < 0) { diff --git a/src/gs-entbase/server/func_tracktrain.cpp b/src/gs-entbase/server/func_tracktrain.cpp index 13728e8f..441914cf 100644 --- a/src/gs-entbase/server/func_tracktrain.cpp +++ b/src/gs-entbase/server/func_tracktrain.cpp @@ -232,7 +232,8 @@ func_tracktrain::Realign(void) CBaseEntity first, second; string strFirst, strSecond; - first = second = t = f = __NULL__; + first = second = __NULL__; + t = f = __NULL__; for (f = world; (f = find(f, ::target, targetname));) { /* we found the right entity */ diff --git a/src/gs-entbase/server/func_vehicle.cpp b/src/gs-entbase/server/func_vehicle.cpp index 0b3055f0..8fe5de17 100644 --- a/src/gs-entbase/server/func_vehicle.cpp +++ b/src/gs-entbase/server/func_vehicle.cpp @@ -430,7 +430,8 @@ func_vehicle::Realign(void) CBaseEntity first, second; string strFirst, strSecond; - first = second = t = f = __NULL__; + first = second = __NULL__; + t = f = __NULL__; for (f = world; (f = find(f, ::target, targetname));) { /* we found the right entity */ diff --git a/src/plugins/chatsounds.c b/src/plugins/chatsounds.c index 770ebd3f..0af2014a 100755 --- a/src/plugins/chatsounds.c +++ b/src/plugins/chatsounds.c @@ -82,7 +82,7 @@ FMX_Init(void) searchhandle list; list = search_begin("plugins/chatsounds/*.txt", TRUE, TRUE); - for (int i = 0; i < search_getsize(list); i++) { + for (i = 0; i < search_getsize(list); i++) { print(sprintf("Found %s\n", search_getfilename(list, i))); } search_end(list); diff --git a/src/server/nodes.c b/src/server/nodes.c index 04cb4435..c200b6ad 100644 --- a/src/server/nodes.c +++ b/src/server/nodes.c @@ -105,7 +105,7 @@ Node_Link(node_t *n1, node_t *n2) } int idx = n1->nb_count++; - n1->nb = memrealloc(n1->nb, sizeof(*n1->nb), idx, n1->nb_count); + n1->nb = (neighbour_s *)memrealloc(n1->nb, sizeof(*n1->nb), idx, n1->nb_count); local struct neighbour_s *n = n1->nb+idx; n->node = w2n; n->dist = vlen(n2->origin - n1->origin); @@ -167,7 +167,7 @@ Nodes_Init(void) /* run through the ents and rebuild the tree */ for (entity a = world; (a = find(a, ::classname, "info_node"));) { int iID = g_iNodes++; - g_pNodes = memrealloc(g_pNodes, sizeof(node_t), iID, g_iNodes); + g_pNodes = (node_t *)memrealloc(g_pNodes, sizeof(node_t), iID, g_iNodes); node_t *n = g_pNodes + iID; n->origin = a.origin; n->nb = __NULL__; diff --git a/src/server/sentences.c b/src/server/sentences.c index b2451996..17e768d7 100644 --- a/src/server/sentences.c +++ b/src/server/sentences.c @@ -64,7 +64,7 @@ Sentences_Init(void) /* allocate memory and increase count */ #ifdef DYNAMIC_SENTENCES g_sentences_count++; - g_sentences = memrealloc(g_sentences, + g_sentences = (string *)memrealloc(g_sentences, sizeof(string), x, g_sentences_count); diff --git a/src/shared/sound.c b/src/shared/sound.c index 8746a2a2..761d7951 100644 --- a/src/shared/sound.c +++ b/src/shared/sound.c @@ -17,8 +17,8 @@ .float maxspeed; .float flags; -/* make sure it's all reset */ -void Sound_Init(void) +void +Sound_Shutdown(void) { if (g_sounds) { memfree(g_sounds); @@ -28,6 +28,13 @@ void Sound_Init(void) g_hashsounds = 0; } +void +Sound_Init(void) +{ + /* make sure it's all reset */ + Sound_Shutdown(); +} + void Sound_ParseField(int i, int a) { @@ -224,7 +231,7 @@ Sound_Precache(string shader) } g_sounds_count++; - g_sounds = memrealloc(g_sounds, sizeof(snd_t), index, g_sounds_count); + g_sounds = (snd_t *)memrealloc(g_sounds, sizeof(snd_t), index, g_sounds_count); g_sounds[index].volume = 1.0f; g_sounds[index].dist_max = 1;