diff --git a/src/PowderToySDL.cpp b/src/PowderToySDL.cpp index 3c572a5770..76712c31e7 100644 --- a/src/PowderToySDL.cpp +++ b/src/PowderToySDL.cpp @@ -334,6 +334,7 @@ int SDLOpen() #elif defined(LIN) SDL_Surface *icon = SDL_CreateRGBSurfaceFrom((void*)app_icon, 48, 48, 24, 144, 0x00FF0000, 0x0000FF00, 0x000000FF, 0); SDL_WM_SetIcon(icon, (Uint8*)app_icon_bitmap); + SDL_FreeSurface(icon); #endif SDL_WM_SetCaption("The Powder Toy", "Powder Toy"); diff --git a/src/debug/DebugInfo.h b/src/debug/DebugInfo.h index 9266b87fe7..74af41da2c 100644 --- a/src/debug/DebugInfo.h +++ b/src/debug/DebugInfo.h @@ -6,6 +6,7 @@ class DebugInfo { public: DebugInfo(unsigned int id):ID(id) { } + virtual ~DebugInfo() { } unsigned int ID; virtual void Draw() {} }; diff --git a/src/gui/game/GameController.cpp b/src/gui/game/GameController.cpp index 3a84a3a410..fde3c1c164 100644 --- a/src/gui/game/GameController.cpp +++ b/src/gui/game/GameController.cpp @@ -195,6 +195,10 @@ GameController::~GameController() { delete options; } + for(std::vector::iterator iter = debugInfo.begin(), end = debugInfo.end(); iter != end; iter++) + { + delete *iter; + } //deleted here because it refuses to be deleted when deleted from gameModel even with the same code std::deque history = gameModel->GetHistory(); for(std::deque::iterator iter = history.begin(), end = history.end(); iter != end; ++iter) diff --git a/src/gui/game/QuickOption.h b/src/gui/game/QuickOption.h index 4d3eb6c179..fd896d6b8e 100644 --- a/src/gui/game/QuickOption.h +++ b/src/gui/game/QuickOption.h @@ -37,8 +37,8 @@ class QuickOption public: virtual ~QuickOption() { - //for(std::vector::iterator iter = listeners.begin(), end = listeners.end(); iter != end; ++iter) - // delete *iter; + for(std::vector::iterator iter = listeners.begin(), end = listeners.end(); iter != end; ++iter) + delete *iter; } std::vector GetListeners() diff --git a/src/simulation/Gravity.cpp b/src/simulation/Gravity.cpp index d76fda5e89..41690c206a 100755 --- a/src/simulation/Gravity.cpp +++ b/src/simulation/Gravity.cpp @@ -60,6 +60,7 @@ void Gravity::gravity_init() void Gravity::gravity_cleanup() { + stop_grav_async(); #ifdef GRAVFFT grav_fft_cleanup(); #endif