Fix some memory leaks.

svn-id: r47284
This commit is contained in:
Johannes Schickel 2010-01-12 21:46:50 +00:00
parent 62a87101d5
commit af1ba42298
2 changed files with 12 additions and 3 deletions

View file

@ -154,8 +154,11 @@ bool VirtualKeyboardParser::parserCallback_mode(ParserNode *node) {
} else { } else {
// remove data relating to old resolution // remove data relating to old resolution
_mode->bitmapName.clear(); _mode->bitmapName.clear();
delete _mode->image; if (_mode->image) {
_mode->image = 0; _mode->image->free();
delete _mode->image;
_mode->image = 0;
}
_mode->imageMap.removeAllAreas(); _mode->imageMap.removeAllAreas();
_mode->displayArea = Rect(); _mode->displayArea = Rect();
} }

View file

@ -121,7 +121,13 @@ protected:
OverlayColor displayFontColor; OverlayColor displayFontColor;
Mode() : image(0) {} Mode() : image(0) {}
~Mode() { delete image; } ~Mode() {
if (image) {
image->free();
delete image;
image = 0;
}
}
}; };
typedef HashMap<String, Mode, IgnoreCase_Hash, IgnoreCase_EqualTo> ModeMap; typedef HashMap<String, Mode, IgnoreCase_Hash, IgnoreCase_EqualTo> ModeMap;