[Scummvm-git-logs] scummvm master -> 83e33e1ef05fd1f4993c00a6992354d674d40375

bluegr bluegr at gmail.com
Tue Oct 26 23:20:16 UTC 2021


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:
83e33e1ef0 GROOVIE: Don't dispose file streams when dumping via --dump_resources


Commit: 83e33e1ef05fd1f4993c00a6992354d674d40375
    https://github.com/scummvm/scummvm/commit/83e33e1ef05fd1f4993c00a6992354d674d40375
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2021-10-27T02:20:01+03:00

Commit Message:
GROOVIE: Don't dispose file streams when dumping via --dump_resources

The file stream is returned after dumping its contents, so we should
reset it instead

Changed paths:
    engines/groovie/resource.cpp
    engines/groovie/resource.h


diff --git a/engines/groovie/resource.cpp b/engines/groovie/resource.cpp
index e03a45ff2e..00ea4a1148 100644
--- a/engines/groovie/resource.cpp
+++ b/engines/groovie/resource.cpp
@@ -72,7 +72,7 @@ Common::SeekableReadStream *ResMan::open(uint32 fileRef) {
 	// Returning the resource substream
 	Common::SeekableSubReadStream *file = new Common::SeekableSubReadStream(gjdFile, resInfo.offset, resInfo.offset + resInfo.size, DisposeAfterUse::YES);
 	if (ConfMan.getBool("dump_resources")) {
-		dumpResource(file, resInfo.filename);
+		dumpResource(file, resInfo.filename, false);
 	}
 	return file;
 }
@@ -87,7 +87,7 @@ void ResMan::dumpResource(uint32 fileRef, Common::String &fileName) {
 	dumpResource(inFile, fileName);
 }
 
-void ResMan::dumpResource(Common::SeekableReadStream *inFile, Common::String &fileName) {
+void ResMan::dumpResource(Common::SeekableReadStream *inFile, Common::String &fileName, bool dispose) {
 	Common::DumpFile outFile;
 	outFile.open(fileName);
 
@@ -99,7 +99,12 @@ void ResMan::dumpResource(Common::SeekableReadStream *inFile, Common::String &fi
 	outFile.flush();
 
 	delete[] data;
-	delete inFile;
+
+	if (dispose)
+		delete inFile;
+	else
+		inFile->seek(0);
+
 	outFile.close();
 }
 
diff --git a/engines/groovie/resource.h b/engines/groovie/resource.h
index 7068739366..10e55e14d8 100644
--- a/engines/groovie/resource.h
+++ b/engines/groovie/resource.h
@@ -44,7 +44,7 @@ public:
 	Common::SeekableReadStream *open(uint32 fileRef);
 	void dumpResource(Common::String &fileName);
 	void dumpResource(uint32 fileRef, Common::String &fileName);
-	void dumpResource(Common::SeekableReadStream *inFile, Common::String &fileName);
+	void dumpResource(Common::SeekableReadStream *inFile, Common::String &fileName, bool dispose = true);
 
 	virtual uint32 getRef(Common::String name) = 0;
 	virtual bool getResInfo(uint32 fileRef, ResInfo &resInfo) = 0;




More information about the Scummvm-git-logs mailing list