[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