summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-08-10 22:08:55 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-08-10 22:08:55 (GMT)
commite34ed89dc359a685fc80011cfe6dbbbe175008c3 (patch)
treef95a196a0cb1935ba72f6e386f31dd35a44a8296 /src
parenta8fbd905c258e57a698187b471f10f81eb516ea0 (diff)
downloadpowder-e34ed89dc359a685fc80011cfe6dbbbe175008c3.zip
powder-e34ed89dc359a685fc80011cfe6dbbbe175008c3.tar.gz
Some fixes for memory leaks
Diffstat (limited to 'src')
-rw-r--r--src/game/GameView.cpp29
-rw-r--r--src/game/GameView.h1
-rw-r--r--src/graphics/Renderer.cpp7
3 files changed, 37 insertions, 0 deletions
diff --git a/src/game/GameView.cpp b/src/game/GameView.cpp
index df755f0..352d9e5 100644
--- a/src/game/GameView.cpp
+++ b/src/game/GameView.cpp
@@ -496,6 +496,35 @@ GameView::GameView():
renderModePresets[9].ColourMode = COLOUR_GRAD;
}
+GameView::~GameView()
+{
+ delete[] renderModePresets;
+
+ if(!colourRSlider->GetParentWindow())
+ delete colourRSlider;
+
+ if(!colourGSlider->GetParentWindow())
+ delete colourGSlider;
+
+ if(!colourBSlider->GetParentWindow())
+ delete colourBSlider;
+
+ if(!colourASlider->GetParentWindow())
+ delete colourASlider;
+
+ if(!colourRValue->GetParentWindow())
+ delete colourRValue;
+
+ if(!colourGValue->GetParentWindow())
+ delete colourGValue;
+
+ if(!colourBValue->GetParentWindow())
+ delete colourBValue;
+
+ if(!colourAValue->GetParentWindow())
+ delete colourAValue;
+}
+
class GameView::MenuAction: public ui::ButtonAction
{
GameView * v;
diff --git a/src/game/GameView.h b/src/game/GameView.h
index efb4895..de84e1e 100644
--- a/src/game/GameView.h
+++ b/src/game/GameView.h
@@ -119,6 +119,7 @@ private:
void disableAltBehaviour();
public:
GameView();
+ virtual ~GameView();
//Breaks MVC, but any other way is going to be more of a mess.
ui::Point GetMousePosition();
diff --git a/src/graphics/Renderer.cpp b/src/graphics/Renderer.cpp
index ea3c840..aed78b2 100644
--- a/src/graphics/Renderer.cpp
+++ b/src/graphics/Renderer.cpp
@@ -2477,6 +2477,13 @@ unsigned int Renderer::GetColourMode()
Renderer::~Renderer()
{
+#if !defined(OGLR)
+#if defined(OGLI)
+ delete[] vid;
+#endif
+ delete[] persistentVid;
+ delete[] warpVid;
+#endif
free(graphicscache);
free(flm_data);
free(plasma_data);