aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
authorColin Snover2017-11-16 23:58:20 -0600
committerEugene Sandulenko2017-11-18 22:35:12 +0100
commit0cc3d8f05d7302651ec5c8dce47ee511db829cf9 (patch)
tree1260de5bc217e9cd57766a1524dc83dac54e343d /engines/fullpipe
parentdcf8f588c700cb967baccdafd745ac1cffdd3554 (diff)
downloadscummvm-rg350-0cc3d8f05d7302651ec5c8dce47ee511db829cf9.tar.gz
scummvm-rg350-0cc3d8f05d7302651ec5c8dce47ee511db829cf9.tar.bz2
scummvm-rg350-0cc3d8f05d7302651ec5c8dce47ee511db829cf9.zip
FULLPIPE: Fix leaks of ExCommands loaded from an archive
Nearly every construction of an ExCommand in the engine sets flag 2 of _excFlags. It may even be that the remaining ones that don't are themselves bugs. This flag is needed in order for an ExCommand to be cleaned up when its parent MessageQueue is deleted.
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/messages.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/engines/fullpipe/messages.cpp b/engines/fullpipe/messages.cpp
index fd58de2abf..d856d1beaf 100644
--- a/engines/fullpipe/messages.cpp
+++ b/engines/fullpipe/messages.cpp
@@ -303,6 +303,7 @@ bool MessageQueue::load(MfcArchive &file) {
for (int i = 0; i < count; i++) {
ExCommand *tmp = file.readClass<ExCommand>();
+ tmp->_excFlags |= 2;
_exCommands.push_back(tmp);
}