aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Snover2017-11-16 23:58:20 -0600
committerEugene Sandulenko2017-11-18 22:35:12 +0100
commit0cc3d8f05d7302651ec5c8dce47ee511db829cf9 (patch)
tree1260de5bc217e9cd57766a1524dc83dac54e343d
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.
-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);
}