diff options
-rw-r--r-- | engines/lab/engine.cpp | 12 |
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) { |