summaryrefslogtreecommitdiff
path: root/src/guichan/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'src/guichan/widgets')
-rw-r--r--src/guichan/widgets/dropdown.cpp6
-rw-r--r--src/guichan/widgets/icon.cpp3
-rw-r--r--src/guichan/widgets/imagebutton.cpp6
-rw-r--r--src/guichan/widgets/tab.cpp1
-rw-r--r--src/guichan/widgets/tabbedarea.cpp6
5 files changed, 20 insertions, 2 deletions
diff --git a/src/guichan/widgets/dropdown.cpp b/src/guichan/widgets/dropdown.cpp
index c666b47e4..da7ff754c 100644
--- a/src/guichan/widgets/dropdown.cpp
+++ b/src/guichan/widgets/dropdown.cpp
@@ -106,10 +106,16 @@ namespace gcn
}
if (mInternalScrollArea)
+ {
delete mScrollArea;
+ mScrollArea = 0;
+ }
if (mInternalListBox)
+ {
delete mListBox;
+ mListBox = 0;
+ }
setInternalFocusHandler(NULL);
}
diff --git a/src/guichan/widgets/icon.cpp b/src/guichan/widgets/icon.cpp
index 687fadeab..a040dcc83 100644
--- a/src/guichan/widgets/icon.cpp
+++ b/src/guichan/widgets/icon.cpp
@@ -83,15 +83,14 @@ namespace gcn
if (mInternalImage)
{
delete mImage;
+ mImage = 0;
}
}
void Icon::setImage(const Image* image)
{
if (mInternalImage)
- {
delete mImage;
- }
mImage = image;
mInternalImage = false;
diff --git a/src/guichan/widgets/imagebutton.cpp b/src/guichan/widgets/imagebutton.cpp
index a340face3..141b17b79 100644
--- a/src/guichan/widgets/imagebutton.cpp
+++ b/src/guichan/widgets/imagebutton.cpp
@@ -81,13 +81,19 @@ namespace gcn
ImageButton::~ImageButton()
{
if (mInternalImage)
+ {
delete mImage;
+ mImage = 0;
+ }
}
void ImageButton::setImage(const Image* image)
{
if (mInternalImage)
+ {
delete mImage;
+ mImage = 0;
+ }
mImage = image;
mInternalImage = false;
diff --git a/src/guichan/widgets/tab.cpp b/src/guichan/widgets/tab.cpp
index 760e77a18..b0d0c7982 100644
--- a/src/guichan/widgets/tab.cpp
+++ b/src/guichan/widgets/tab.cpp
@@ -69,6 +69,7 @@ namespace gcn
Tab::~Tab()
{
delete mLabel;
+ mLabel = 0;
}
void Tab::adjustSize()
diff --git a/src/guichan/widgets/tabbedarea.cpp b/src/guichan/widgets/tabbedarea.cpp
index d430a76a3..26a45c1f0 100644
--- a/src/guichan/widgets/tabbedarea.cpp
+++ b/src/guichan/widgets/tabbedarea.cpp
@@ -81,10 +81,15 @@ namespace gcn
remove(mWidgetContainer);
delete mTabContainer;
+ mTabContainer = 0;
delete mWidgetContainer;
+ mWidgetContainer = 0;
for (unsigned int i = 0; i < mTabsToDelete.size(); i++)
+ {
delete mTabsToDelete[i];
+ mTabsToDelete[i] = 0;
+ }
}
void TabbedArea::addTab(const std::string& caption, Widget* widget)
@@ -163,6 +168,7 @@ namespace gcn
{
mTabsToDelete.erase(iter2);
delete tab;
+ tab = 0;
break;
}
}