From b59e3e46c4863aa0a79e0f8c8cce777eca890205 Mon Sep 17 00:00:00 2001 From: JailDoctor Date: Sun, 21 Feb 2021 12:43:23 +0100 Subject: [PATCH] Memory leaks regarding sound hopefully solved... --- source/volcano.cpp | 58 +++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/source/volcano.cpp b/source/volcano.cpp index 2b8783d..724cd59 100644 --- a/source/volcano.cpp +++ b/source/volcano.cpp @@ -8,6 +8,9 @@ #include "volcano.h" #include +#define CLOSE_SOUND(a) if (a != nullptr) JA_DeleteSound(a); a = nullptr +#define CLOSE_MUSIC(a) if (a != nullptr) JA_DeleteMusic(a); a = nullptr + void allocatePointers() { // Textures @@ -47,13 +50,13 @@ void deletePointers() delete prog.sprite; // Sounds - JA_DeleteSound(game.sound_drop_enemy); - JA_DeleteSound(game.sound_drop_splat); - JA_DeleteSound(menu.sound_logo); - JA_DeleteSound(menu.sound_start); - JA_DeleteSound(player.sound_coin); - JA_DeleteSound(player.sound_death); - JA_DeleteSound(player.sound_jump); + CLOSE_SOUND(game.sound_drop_enemy); + CLOSE_SOUND(game.sound_drop_splat); + CLOSE_SOUND(menu.sound_logo); + CLOSE_SOUND(menu.sound_start); + CLOSE_SOUND(player.sound_coin); + CLOSE_SOUND(player.sound_death); + CLOSE_SOUND(player.sound_jump); // Music //game.music = new Mix_Music(); @@ -75,7 +78,7 @@ bool loadTextureFromFile(LTexture *texture, std::string path, SDL_Renderer *rend return success; } -void CloseSound(JA_Sound sound) +/*void CloseSound(JA_Sound sound) { if (sound != nullptr) JA_DeleteSound(sound); @@ -87,7 +90,7 @@ void CloseMusic(JA_Music music) if (music != nullptr) JA_DeleteMusic(music); music = nullptr; -} +}*/ void ClosePicture(LTexture *picture) { @@ -612,9 +615,10 @@ void IniMenu() void EndMenu() { - CloseSound(menu.sound_logo); - CloseSound(menu.sound_start); - CloseMusic(menu.music); + + CLOSE_SOUND(menu.sound_logo); + CLOSE_SOUND(menu.sound_start); + CLOSE_MUSIC(menu.music); ClosePicture(menu.sprite); ClosePicture(menu.sprite_animation); menu.enabled = false; @@ -780,9 +784,9 @@ void IniPlayer() void EndPlayer() { ClosePicture(player.sprite); - CloseSound(player.sound_jump); - CloseSound(player.sound_death); - CloseSound(player.sound_coin); + CLOSE_SOUND(player.sound_jump); + CLOSE_SOUND(player.sound_death); + CLOSE_SOUND(player.sound_coin); } void IniHud() @@ -857,11 +861,11 @@ void EndGame() EndPlayer(); EndHud(); EndMap(); - CloseSound(game.sound_drop_enemy); - CloseSound(game.sound_drop_splat); + CLOSE_SOUND(game.sound_drop_enemy); + CLOSE_SOUND(game.sound_drop_splat); if (JA_GetMusicState() == JA_MUSIC_PLAYING) JA_StopMusic(); - CloseMusic(game.music); + CLOSE_MUSIC(game.music); game.enabled = false; } @@ -2292,18 +2296,18 @@ int main(int argc, char *args[]) } } // Finalitzar la m�sica, els samples i el audio - CloseSound(player.sound_jump); - CloseSound(player.sound_death); - CloseSound(player.sound_coin); - CloseSound(menu.sound_logo); - CloseSound(menu.sound_start); - CloseSound(game.sound_drop_enemy); - CloseSound(game.sound_drop_splat); + CLOSE_SOUND(player.sound_jump); + CLOSE_SOUND(player.sound_death); + CLOSE_SOUND(player.sound_coin); + CLOSE_SOUND(menu.sound_logo); + CLOSE_SOUND(menu.sound_start); + CLOSE_SOUND(game.sound_drop_enemy); + CLOSE_SOUND(game.sound_drop_splat); JA_StopMusic(); - CloseMusic(game.music); - CloseMusic(menu.music); + CLOSE_MUSIC(game.music); + CLOSE_MUSIC(menu.music); //Mix_CloseAudio();