[Scummvm-git-logs] scummvm master -> c625237bafe5cd40fc759fb0d9e4fb72819654a5

sluicebox noreply at scummvm.org
Sat Jul 20 06:34:39 UTC 2024


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

Summary:
33952e8fce FREESCAPE: Fix memory leak
f64c137771 IMMORTAL: Fix memory leak
27a97db805 KYRA: Fix memory leak
c625237baf M4: Fix memory leaks


Commit: 33952e8fce2b8dd9c2ebcfe6f8b5aa34e2bc7901
    https://github.com/scummvm/scummvm/commit/33952e8fce2b8dd9c2ebcfe6f8b5aa34e2bc7901
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2024-07-19T23:33:20-07:00

Commit Message:
FREESCAPE: Fix memory leak

CID 1551942

Changed paths:
    engines/freescape/objects/entrance.h


diff --git a/engines/freescape/objects/entrance.h b/engines/freescape/objects/entrance.h
index fb0ed17c5c5..7303d6c34ba 100644
--- a/engines/freescape/objects/entrance.h
+++ b/engines/freescape/objects/entrance.h
@@ -53,10 +53,11 @@ public:
 	bool isPlanar() override { return true; }
 	void scale(int factor) override { _origin = _origin / factor; };
 	Object *duplicate() override {
-		FCLInstructionVector *conditionCopy = nullptr;
-		conditionCopy = duplicateCondition(&_condition);
+		FCLInstructionVector *conditionCopy = duplicateCondition(&_condition);
 		assert(conditionCopy);
-		return (new Entrance(_objectID, _origin, _rotation, *conditionCopy, _conditionSource));
+		Entrance *entrance = new Entrance(_objectID, _origin, _rotation, *conditionCopy, _conditionSource);
+		delete conditionCopy;
+		return entrance;
 	};
 
 	ObjectType getType() override { return ObjectType::kEntranceType; };


Commit: f64c1377715676508597549839d72d8c3ad87ce5
    https://github.com/scummvm/scummvm/commit/f64c1377715676508597549839d72d8c3ad87ce5
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2024-07-19T23:33:20-07:00

Commit Message:
IMMORTAL: Fix memory leak

CID 1551960

Changed paths:
    engines/immortal/kernal.cpp


diff --git a/engines/immortal/kernal.cpp b/engines/immortal/kernal.cpp
index f99812b16ba..985bc6a2a34 100644
--- a/engines/immortal/kernal.cpp
+++ b/engines/immortal/kernal.cpp
@@ -645,6 +645,8 @@ void ImmortalEngine::loadSprites() {
 			initDataSprite(file, &d, n / 2, centerXY[s * 2], centerXY[(s * 2) + 1]);
 			_dataSprites[s] = d;
 		}
+
+		delete file;
 	}
 }
 


Commit: 27a97db805058656badc896a14232b4064839a0e
    https://github.com/scummvm/scummvm/commit/27a97db805058656badc896a14232b4064839a0e
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2024-07-19T23:33:20-07:00

Commit Message:
KYRA: Fix memory leak

CID 1551876

Changed paths:
    engines/kyra/resource/resource.cpp


diff --git a/engines/kyra/resource/resource.cpp b/engines/kyra/resource/resource.cpp
index 746909f3498..935caf40f43 100644
--- a/engines/kyra/resource/resource.cpp
+++ b/engines/kyra/resource/resource.cpp
@@ -137,10 +137,12 @@ bool Resource::reset() {
 			gameDir.listMatchingMembers(files, "*.PAK");
 			gameDir.listMatchingMembers(files, "*.APK");
 
-			if (_vm->gameFlags().platform == Common::Platform::kPlatformMacintosh && gameDir.getSubDirectory("runtime") != nullptr) {
+			if (_vm->gameFlags().platform == Common::Platform::kPlatformMacintosh) {
 				gameDirRuntime.reset(gameDir.getSubDirectory("runtime"));
-				gameDirRuntime->listMatchingMembers(files, "*.PAK");
-				gameDirRuntime->listMatchingMembers(files, "*.APK");
+				if (gameDirRuntime) {
+					gameDirRuntime->listMatchingMembers(files, "*.PAK");
+					gameDirRuntime->listMatchingMembers(files, "*.APK");
+				}
 			}
 
 			for (Common::ArchiveMemberList::const_iterator i = files.begin(); i != files.end(); ++i) {


Commit: c625237bafe5cd40fc759fb0d9e4fb72819654a5
    https://github.com/scummvm/scummvm/commit/c625237bafe5cd40fc759fb0d9e4fb72819654a5
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2024-07-19T23:33:20-07:00

Commit Message:
M4: Fix memory leaks

CID 1551734
CID 1551676

Changed paths:
    engines/m4/wscript/ws_load.cpp


diff --git a/engines/m4/wscript/ws_load.cpp b/engines/m4/wscript/ws_load.cpp
index 611d6eb40df..8037a20fb44 100644
--- a/engines/m4/wscript/ws_load.cpp
+++ b/engines/m4/wscript/ws_load.cpp
@@ -622,8 +622,10 @@ int32 LoadSpriteSeriesDirect(const char *assetName, MemHandle *seriesHandle, int
 	// Lock the handle and read the contents of the file intoit
 	HLock(workHandle);
 	mainAssetPtr = (char *)*workHandle;
-	if (f.read(mainAssetPtr, assetSize) < assetSize)
+	if (f.read(mainAssetPtr, assetSize) < assetSize) {
+		mem_free(workHandle);
 		return -1;
+	}
 
 	// Close the file
 	f.close();
@@ -1113,6 +1115,7 @@ int32 LoadSpriteSeriesDirect(const char *assetName, Handle *seriesHandle, int32
 	mainAssetPtr = (char *)*workHandle;
 	if (f.read(mainAssetPtr, assetSize) < assetSize) {
 		f.close();
+		mem_free(workHandle);
 		return -1;
 	}
 




More information about the Scummvm-git-logs mailing list