[Scummvm-git-logs] scummvm master -> d9da411b069c17261509cca9ce2703d7218a3d1f
rvanlaar
noreply at scummvm.org
Sun Feb 5 21:56:55 UTC 2023
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
d9da411b06 DIRECTOR: LINGO: Fix segfaults in clean up
Commit: d9da411b069c17261509cca9ce2703d7218a3d1f
https://github.com/scummvm/scummvm/commit/d9da411b069c17261509cca9ce2703d7218a3d1f
Author: Roland van Laar (roland at rolandvanlaar.nl)
Date: 2023-02-05T22:56:49+01:00
Commit Message:
DIRECTOR: LINGO: Fix segfaults in clean up
Split resetLingo into the cleanup and reset part.
cleanup is necessary on ~Lingo. The reset and cleanup part
when loading the next movie.
Changed paths:
engines/director/lingo/lingo.cpp
engines/director/lingo/lingo.h
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 7aa9bcb2145..3e85f4751d6 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -224,7 +224,7 @@ Lingo::Lingo(DirectorEngine *vm) : _vm(vm) {
}
Lingo::~Lingo() {
- resetLingo();
+ cleanupLingo();
cleanupFuncs();
cleanupMethods();
delete _compiler;
@@ -707,15 +707,17 @@ void Lingo::resetLingoGo() {
// puppetSprite
}
-void Lingo::resetLingo() {
- debugC(3, kDebugLingoExec, "Resetting Lingo!");
-
+void Lingo::cleanupLingo() {
g_director->_wm->removeMenu();
while (_state->callstack.size()) {
popContext(true);
}
+}
+void Lingo::resetLingo() {
+ debugC(3, kDebugLingoExec, "Resetting Lingo!");
+ cleanupLingo();
resetLingoGo();
}
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index ddfbfb4d24d..04268942a39 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -314,7 +314,9 @@ public:
~Lingo();
void resetLingo();
+ void cleanupLingo();
void resetLingoGo();
+
int getMenuNum();
int getMenuItemsNum(Datum &d);
More information about the Scummvm-git-logs
mailing list