# HG changeset patch # User Matti Hamalainen # Date 1528843578 -10800 # Node ID 8af6067b6bd733e541801c49c0bf437bda6702e0 # Parent 52e90130453bc8b1412c0c3283f2c308b5084c9f Actually it seems to be good to NULL check before calling SDL_Destroy*() and free functions. According to Valgrind SDL2 "leaks" memory with its error message setting if you give NULL pointers, although this is pretty harmless. diff -r 52e90130453b -r 8af6067b6bd7 tools/64vw.c --- a/tools/64vw.c Wed Jun 13 01:40:22 2018 +0300 +++ b/tools/64vw.c Wed Jun 13 01:46:18 2018 +0300 @@ -534,10 +534,17 @@ // Cleanup dmFree(optFilenames); - SDL_DestroyWindow(window); - SDL_DestroyTexture(texture); - SDL_FreeSurface(surf); + if (texture != NULL) + SDL_DestroyTexture(texture); + + if (renderer != NULL) + SDL_DestroyRenderer(renderer); + if (window != NULL) + SDL_DestroyWindow(window); + + if (surf != NULL) + SDL_FreeSurface(surf); if (initSDL) SDL_Quit(); diff -r 52e90130453b -r 8af6067b6bd7 tools/ppl.c --- a/tools/ppl.c Wed Jun 13 01:40:22 2018 +0300 +++ b/tools/ppl.c Wed Jun 13 01:46:18 2018 +0300 @@ -910,10 +910,17 @@ } error_exit: - SDL_DestroyTexture(engine.texture); - SDL_DestroyRenderer(engine.renderer); - SDL_DestroyWindow(engine.window); - SDL_FreeSurface(engine.screen); + if (engine.texture != NULL) + SDL_DestroyTexture(engine.texture); + + if (engine.renderer != NULL) + SDL_DestroyRenderer(engine.renderer); + + if (engine.window != NULL) + SDL_DestroyWindow(engine.window); + + if (engine.screen != NULL) + SDL_FreeSurface(engine.screen); dmMsg(0, "Audio shutdown.\n"); if (audioInit)