diff --git a/engines/lab/resource.cpp b/engines/lab/resource.cpp index 278222f85c9..0e8c118637d 100644 --- a/engines/lab/resource.cpp +++ b/engines/lab/resource.cpp @@ -158,6 +158,9 @@ bool Resource::readViews(uint16 roomNum) { } void Resource::freeViews(uint16 roomNum) { + if (!_vm->_rooms) + return; + for (uint16 i = 0; i < 4; i++) freeView(_vm->_rooms[roomNum]._view[i]); diff --git a/engines/lab/special.cpp b/engines/lab/special.cpp index 946277b8f0b..32abde2cb04 100644 --- a/engines/lab/special.cpp +++ b/engines/lab/special.cpp @@ -284,6 +284,8 @@ void LabEngine::doJournal() { delete[] _blankJournal; delete[] _journalBackImage->_imageData; + _blankJournal = _journalBackImage->_imageData = nullptr; + _event->freeButtonList(&_journalButtonList); _graphics->closeFont(&_journalFont);