aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/lab/engine.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/engines/lab/engine.cpp b/engines/lab/engine.cpp
index cf6ae71563..93b7cb4324 100644
--- a/engines/lab/engine.cpp
+++ b/engines/lab/engine.cpp
@@ -141,6 +141,18 @@ void LabEngine::freeScreens() {
delete _invImages[imgIdx];
_invImages[imgIdx] = nullptr;
}
+
+ // We can't use freeButtonList() here, because some buttons are shared
+ // between the two lists.
+ for (ButtonList::iterator buttonIter = _moveButtonList.begin(); buttonIter != _moveButtonList.end(); ++buttonIter) {
+ delete *buttonIter;
+ }
+ _moveButtonList.clear();
+
+ for (ButtonList::iterator buttonIter = _invButtonList.begin(); buttonIter != _invButtonList.end(); ++buttonIter) {
+ delete *buttonIter;
+ }
+ _invButtonList.clear();
}
void LabEngine::perFlipButton(uint16 buttonId) {