[Scummvm-git-logs] scummvm master -> 7dfae3e2d4f56fdd20bb255ddc6d31f6cd1b67ff
AndywinXp
noreply at scummvm.org
Fri Jun 27 07:29:42 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
7dfae3e2d4 LASTEXPRESS: Fix some more Valgrind issues
Commit: 7dfae3e2d4f56fdd20bb255ddc6d31f6cd1b67ff
https://github.com/scummvm/scummvm/commit/7dfae3e2d4f56fdd20bb255ddc6d31f6cd1b67ff
Author: AndywinXp (andywinxp at gmail.com)
Date: 2025-06-27T09:29:35+02:00
Commit Message:
LASTEXPRESS: Fix some more Valgrind issues
Changed paths:
engines/lastexpress/game/action.cpp
engines/lastexpress/game/nis.cpp
engines/lastexpress/lastexpress.cpp
engines/lastexpress/lastexpress.h
engines/lastexpress/memory.cpp
engines/lastexpress/menu/menu.cpp
diff --git a/engines/lastexpress/game/action.cpp b/engines/lastexpress/game/action.cpp
index 212547f8d4b..8e0ea0ef35b 100644
--- a/engines/lastexpress/game/action.cpp
+++ b/engines/lastexpress/game/action.cpp
@@ -554,6 +554,7 @@ void LogicManager::doPostFunction() {
break;
_engine->getSoundManager()->soundThread();
_engine->getSubtitleManager()->subThread();
+ _engine->waitForTimer(4);
} while (delayedTicks > _engine->getSoundFrameCounter());
}
diff --git a/engines/lastexpress/game/nis.cpp b/engines/lastexpress/game/nis.cpp
index f518feb43d5..313d17876bb 100644
--- a/engines/lastexpress/game/nis.cpp
+++ b/engines/lastexpress/game/nis.cpp
@@ -39,6 +39,7 @@ NISManager::~NISManager() {
SAFE_DELETE(_background2);
SAFE_DELETE(_waneSprite);
SAFE_DELETE(_waxSprite);
+ SAFE_DELETE(_events);
}
void NISManager::clearBounds() {
diff --git a/engines/lastexpress/lastexpress.cpp b/engines/lastexpress/lastexpress.cpp
index 738585d19c6..621929ddac7 100644
--- a/engines/lastexpress/lastexpress.cpp
+++ b/engines/lastexpress/lastexpress.cpp
@@ -79,6 +79,7 @@ LastExpressEngine::~LastExpressEngine() {
SAFE_DELETE(_clock);
SAFE_DELETE(_vcr);
SAFE_DELETE(_soundMutex);
+ SAFE_DELETE(_savegame);
//_debugger is deleted by Engine
diff --git a/engines/lastexpress/lastexpress.h b/engines/lastexpress/lastexpress.h
index 9d80306e109..6e4291bbd0d 100644
--- a/engines/lastexpress/lastexpress.h
+++ b/engines/lastexpress/lastexpress.h
@@ -222,6 +222,11 @@ typedef struct Seq {
memset(gap, 0, sizeof(gap));
rawSeqData = nullptr;
}
+
+ ~Seq() {
+ delete[] sprites;
+ sprites = nullptr;
+ }
} Seq;
typedef struct CharacterCallParams {
@@ -366,13 +371,11 @@ typedef struct Link {
~Link() {
if (lineList) {
- debug("DELETE LINK LINE");
delete lineList;
lineList = nullptr;
}
if (next) {
- debug("DELETE LINK NEXT");
delete next;
next = nullptr;
}
diff --git a/engines/lastexpress/memory.cpp b/engines/lastexpress/memory.cpp
index fa760ac1906..d989c328631 100644
--- a/engines/lastexpress/memory.cpp
+++ b/engines/lastexpress/memory.cpp
@@ -155,6 +155,13 @@ void MemoryManager::freeMem(void *data) {
void MemoryManager::releaseMemory() {
SAFE_FREE(_engine->_globalMemoryPool);
SAFE_FREE(_engine->getGraphicsManager()->_backBuffer);
+
+ for (int i = 0; i < _engine->getLogicManager()->_numberOfScenes; i++) {
+ if (_engine->getLogicManager()->_trainData[i].link) {
+ SAFE_DELETE(_engine->getLogicManager()->_trainData[i].link);
+ }
+ }
+
SAFE_FREE(_engine->getLogicManager()->_trainData);
SAFE_FREE(_engine->_cursorsMemoryPool);
SAFE_DELETE(_engine->_characters);
diff --git a/engines/lastexpress/menu/menu.cpp b/engines/lastexpress/menu/menu.cpp
index 1acc7938fb4..66891bd7870 100644
--- a/engines/lastexpress/menu/menu.cpp
+++ b/engines/lastexpress/menu/menu.cpp
@@ -908,6 +908,7 @@ bool Menu::eggCursorAction(int8 action, int8 flags) {
do {
_engine->getSoundManager()->soundThread();
+ _engine->waitForTimer(4);
} while (delay > _engine->getSoundFrameCounter());
return true;
@@ -944,6 +945,7 @@ bool Menu::eggCursorAction(int8 action, int8 flags) {
do {
_engine->getSoundManager()->soundThread();
+ _engine->waitForTimer(4);
} while (_engine->getSoundFrameCounter() < delay);
return true;
More information about the Scummvm-git-logs
mailing list