From: Holger Schemel Date: Wed, 17 Apr 2019 20:02:18 +0000 (+0200) Subject: fixed some memory allocations to prevent valgrind warnings X-Git-Tag: 4.1.3.0~15 X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=commitdiff_plain;h=04a2a29c9811ca80be2123aaab0e56e569a6e3cc fixed some memory allocations to prevent valgrind warnings --- diff --git a/src/game_sp/Globals.c b/src/game_sp/Globals.c index a73a6ffd..0ca65000 100644 --- a/src/game_sp/Globals.c +++ b/src/game_sp/Globals.c @@ -5,6 +5,9 @@ #include "Globals.h" +static int *PlayField16Mem; +static byte *PlayField8Mem; + boolean LevelLoaded; boolean DemoAvailable; @@ -167,16 +170,22 @@ void InitGlobals(void) menBorder = False; // add preceding playfield buffer (as large as preceding memory area) - PlayField16 = checked_calloc((game_sp.preceding_buffer_size + - SP_MAX_PLAYFIELD_SIZE + - SP_HEADER_SIZE) * sizeof(int)); - PlayField16 = &PlayField16[game_sp.preceding_buffer_size]; + PlayField16Mem = checked_calloc((game_sp.preceding_buffer_size + + SP_MAX_PLAYFIELD_SIZE + + SP_HEADER_SIZE) * sizeof(int)); + PlayField16 = &PlayField16Mem[game_sp.preceding_buffer_size]; // add preceding playfield buffer (as large as one playfield row) - PlayField8 = checked_calloc((SP_MAX_PLAYFIELD_WIDTH + - SP_MAX_PLAYFIELD_SIZE + - SP_HEADER_SIZE) * sizeof(byte)); - PlayField8 = &PlayField8[SP_MAX_PLAYFIELD_WIDTH]; + PlayField8Mem = checked_calloc((SP_MAX_PLAYFIELD_WIDTH + + SP_MAX_PLAYFIELD_SIZE + + SP_HEADER_SIZE) * sizeof(byte)); + PlayField8 = &PlayField8Mem[SP_MAX_PLAYFIELD_WIDTH]; +} + +void FreeGlobals(void) +{ + checked_free(PlayField16Mem); + checked_free(PlayField8Mem); } int GetSI(int X, int Y) diff --git a/src/game_sp/Globals.h b/src/game_sp/Globals.h index a202d07d..bcb8dad3 100644 --- a/src/game_sp/Globals.h +++ b/src/game_sp/Globals.h @@ -271,6 +271,7 @@ int GetStretchY(int si); int GetX(int si); int GetY(int si); void InitGlobals(void); +void FreeGlobals(void); void PrepareLevel(void); diff --git a/src/game_sp/init.c b/src/game_sp/init.c index 040c18f9..4b001ae4 100644 --- a/src/game_sp/init.c +++ b/src/game_sp/init.c @@ -64,6 +64,7 @@ void sp_open_all(void) void sp_close_all(void) { + FreeGlobals(); } void InitPrecedingPlayfieldMemory(void)