[Scummvm-git-logs] scummvm master -> 3404844fe68b1cb1e3e5c38cd255dbfb9bd06d94

AndywinXp noreply at scummvm.org
Sat Jun 28 07:59:15 UTC 2025


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
813d4266d3 LASTEXPRESS: DEBUGGER: Fix exit when quitting from the menu
3404844fe6 LASTEXPRESS: Fix more Valgrind issues


Commit: 813d4266d3490b5eb715179f8877bdfd88fad33b
    https://github.com/scummvm/scummvm/commit/813d4266d3490b5eb715179f8877bdfd88fad33b
Author: AndywinXp (andywinxp at gmail.com)
Date: 2025-06-28T09:58:47+02:00

Commit Message:
LASTEXPRESS: DEBUGGER: Fix exit when quitting from the menu

Changed paths:
    engines/lastexpress/debug.cpp
    engines/lastexpress/lastexpress.cpp


diff --git a/engines/lastexpress/debug.cpp b/engines/lastexpress/debug.cpp
index 7d1ad74cef8..5df6a8d0414 100644
--- a/engines/lastexpress/debug.cpp
+++ b/engines/lastexpress/debug.cpp
@@ -68,7 +68,7 @@ void onImGuiInit() {
 }
 
 void onImGuiRender() {
-	if (_state->_engine->shouldQuit())
+	if (_state->_engine->shouldQuit() || _state->_engine->_exitFromMenuButton)
 		return;
 
 	if (!debugChannelSet(-1, kDebugConsole)) {
diff --git a/engines/lastexpress/lastexpress.cpp b/engines/lastexpress/lastexpress.cpp
index 621929ddac7..7851342888f 100644
--- a/engines/lastexpress/lastexpress.cpp
+++ b/engines/lastexpress/lastexpress.cpp
@@ -558,6 +558,9 @@ bool LastExpressEngine::handleEvents() {
 		}
 	}
 
+	if (_exitFromMenuButton)
+		_exitFromMenuButton = false;
+
 	return true;
 }
 


Commit: 3404844fe68b1cb1e3e5c38cd255dbfb9bd06d94
    https://github.com/scummvm/scummvm/commit/3404844fe68b1cb1e3e5c38cd255dbfb9bd06d94
Author: AndywinXp (andywinxp at gmail.com)
Date: 2025-06-28T09:59:10+02:00

Commit Message:
LASTEXPRESS: Fix more Valgrind issues

Changed paths:
    engines/lastexpress/game/action.cpp
    engines/lastexpress/game/nis.cpp
    engines/lastexpress/helpers.h
    engines/lastexpress/lastexpress.h
    engines/lastexpress/memory.cpp
    engines/lastexpress/sound/subtitle.cpp


diff --git a/engines/lastexpress/game/action.cpp b/engines/lastexpress/game/action.cpp
index baa837dcc0d..cd17ebee9df 100644
--- a/engines/lastexpress/game/action.cpp
+++ b/engines/lastexpress/game/action.cpp
@@ -917,7 +917,7 @@ void LogicManager::doAction(Link *link) {
 				_items[kItemCorpse].floating = 0;
 				_activeItem = kItemCorpse;
 				_engine->getGraphicsManager()->drawItem(_items[kItemCorpse].mnum, 44, 0);
-				_engine->getGraphicsManager()->burstBox(44u, 0, 32, 32);
+				_engine->getGraphicsManager()->burstBox(44, 0, 32, 32);
 			}
 		} else {
 			_items[link->param1].haveIt = 1;
diff --git a/engines/lastexpress/game/nis.cpp b/engines/lastexpress/game/nis.cpp
index 313d17876bb..10a52461da6 100644
--- a/engines/lastexpress/game/nis.cpp
+++ b/engines/lastexpress/game/nis.cpp
@@ -39,7 +39,7 @@ NISManager::~NISManager() {
 	SAFE_DELETE(_background2);
 	SAFE_DELETE(_waneSprite);
 	SAFE_DELETE(_waxSprite);
-	SAFE_DELETE(_events);
+	SAFE_DELETE_ARR(_events);
 }
 
 void NISManager::clearBounds() {
diff --git a/engines/lastexpress/helpers.h b/engines/lastexpress/helpers.h
index 88bf2dd6f51..bca19a4a6f3 100644
--- a/engines/lastexpress/helpers.h
+++ b/engines/lastexpress/helpers.h
@@ -30,8 +30,9 @@
 #define getCharacterCurrentParams(c) (getCharacter(c).callParams[getCharacter(c).currentCall].parameters)
 #define getCharacterParams(c, n) (getCharacter(c).callParams[n].parameters)
 
-// Used to delete character sequences
+// Helpers
 #define SAFE_DELETE(_p) do { if (_p) delete (_p); (_p) = nullptr; } while (false)
+#define SAFE_DELETE_ARR(_p) do { if (_p) delete[] (_p); (_p) = nullptr; } while (false)
 #define SAFE_FREE(_p)   do { if (_p) free   (_p); (_p) = nullptr; } while (false)
 
 #endif // LASTEXPRESS_HELPERS_H
diff --git a/engines/lastexpress/lastexpress.h b/engines/lastexpress/lastexpress.h
index 6e4291bbd0d..b2ca4f63a6a 100644
--- a/engines/lastexpress/lastexpress.h
+++ b/engines/lastexpress/lastexpress.h
@@ -478,8 +478,10 @@ typedef struct FontData {
 		memset(charMap, 0, sizeof(charMap));
 		memset(charKerning, 0, sizeof(charKerning));
 
-		free(fontData);
-		fontData = nullptr;
+		if (fontData) {
+			free(fontData);
+			fontData = nullptr;
+		}
 	}
 } FontData;
 
diff --git a/engines/lastexpress/memory.cpp b/engines/lastexpress/memory.cpp
index d989c328631..1d17d7b566d 100644
--- a/engines/lastexpress/memory.cpp
+++ b/engines/lastexpress/memory.cpp
@@ -306,6 +306,8 @@ Seq *MemoryManager::copySeq(Seq *sequenceToCopy) {
 		newSeqDataStream->readUint32LE(); // Empty "next" sprite pointer
 	}
 
+	delete newSeqDataStream;
+
 	return newSeq;
 }
 
diff --git a/engines/lastexpress/sound/subtitle.cpp b/engines/lastexpress/sound/subtitle.cpp
index 979ff76bcc9..200040b0abe 100644
--- a/engines/lastexpress/sound/subtitle.cpp
+++ b/engines/lastexpress/sound/subtitle.cpp
@@ -189,6 +189,11 @@ void SubtitleManager::initSubtitles() {
 	HPF *archive = _engine->getArchiveManager()->openHPF("FONT.DAT");
 
 	if (archive) {
+		if (_font->fontData) {
+			free(_font->fontData);
+			_font->fontData = nullptr;
+		}
+
 		byte *fontData = (byte *)malloc(PAGE_SIZE * archive->size);
 
 		if (fontData) {




More information about the Scummvm-git-logs mailing list