aboutsummaryrefslogtreecommitdiff
path: root/graphics/macgui/macwindowmanager.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2017-07-30 09:18:42 +0200
committerEugene Sandulenko2017-08-01 10:42:21 +0200
commit645ee64da0f837245443842d53621e8fd5ac924f (patch)
treea9d0e6fe46e23b73ca015a47fdf2a64a11d92c24 /graphics/macgui/macwindowmanager.cpp
parent73b6b12cbb926c2e21020afa4a984bbeaeac3db6 (diff)
downloadscummvm-rg350-645ee64da0f837245443842d53621e8fd5ac924f.tar.gz
scummvm-rg350-645ee64da0f837245443842d53621e8fd5ac924f.tar.bz2
scummvm-rg350-645ee64da0f837245443842d53621e8fd5ac924f.zip
GRAPHICS: MACGUI: Avoid double free of MacTextWindow
Diffstat (limited to 'graphics/macgui/macwindowmanager.cpp')
-rw-r--r--graphics/macgui/macwindowmanager.cpp10
1 files changed, 2 insertions, 8 deletions
diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index 1e4c49fa76..d3f7d22c4d 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -176,8 +176,7 @@ MacWindowManager::~MacWindowManager() {
MacWindow *MacWindowManager::addWindow(bool scrollable, bool resizable, bool editable) {
MacWindow *w = new MacWindow(_lastId, scrollable, resizable, editable, this);
- _windows.push_back(w);
- _windowStack.push_back(w);
+ addWindowInitialized(w);
setActive(getNextId());
@@ -187,8 +186,7 @@ MacWindow *MacWindowManager::addWindow(bool scrollable, bool resizable, bool edi
MacTextWindow *MacWindowManager::addTextWindow(const MacFont *font, int fgcolor, int bgcolor, int maxWidth, TextAlign textAlignment) {
MacTextWindow *w = new MacTextWindow(this, font, fgcolor, bgcolor, maxWidth, textAlignment);
- _windows.push_back(w);
- _windowStack.push_back(w);
+ addWindowInitialized(w);
setActive(getNextId());
@@ -201,10 +199,6 @@ void MacWindowManager::addWindowInitialized(MacWindow *macwindow) {
_windowStack.push_back(macwindow);
}
-int MacWindowManager::getNextId() {
- return _lastId++;
-}
-
MacMenu *MacWindowManager::addMenu() {
_menu = new MacMenu(getNextId(), _screen->getBounds(), this);