summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArchez <Archez@users.noreply.github.com>2024-05-20 07:20:56 -0400
committerGitHub <noreply@github.com>2024-05-20 07:20:56 -0400
commitc2a891be8ba1d33e09ee39eb4bf1c95e3b753e0e (patch)
tree4fc378e5fb7b5e4202e133d9dc5e8f32dfd82b2f
parent281e6a626d795d3e3fcdefa23edae503ac499f6e (diff)
fix version file buffers not staying alive during o2r unload close (#26)
-rw-r--r--OTRExporter/Main.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/OTRExporter/Main.cpp b/OTRExporter/Main.cpp
index cc312e5..795e3fb 100644
--- a/OTRExporter/Main.cpp
+++ b/OTRExporter/Main.cpp
@@ -120,7 +120,7 @@ static void ExporterProgramEnd()
portVerWriter.Write(portVersion[1]); // Minor
portVerWriter.Write(portVersion[2]); // Patch
portVerWriter.Close();
-
+
if (Globals::Instance->fileMode == ZFileMode::ExtractDirectory)
{
std::string romPath = Globals::Instance->baseRomPath.string();
@@ -147,10 +147,12 @@ static void ExporterProgramEnd()
otrArchive->CreateArchive(40000);
printf("Adding game version file.\n");
- otrArchive->AddFile("version", versionStream->ToVector().data(), versionStream->GetLength());
+ auto versionStreamBuffer = versionStream->ToVector();
+ otrArchive->AddFile("version", (void*)versionStreamBuffer.data(), versionStream->GetLength());
printf("Adding portVersion file.\n");
- otrArchive->AddFile("portVersion", portVersionStream->ToVector().data(), portVersionStream->GetLength());
+ auto portVersionStreamBuffer = portVersionStream->ToVector();
+ otrArchive->AddFile("portVersion", (void*)portVersionStreamBuffer.data(), portVersionStream->GetLength());
for (const auto& item : files)
{
@@ -166,9 +168,10 @@ static void ExporterProgramEnd()
const auto& fileData = item.second;
otrArchive->AddFile(fName, (void*)fileData.data(), fileData.size());
}
+
+ otrArchive = nullptr;
}
- otrArchive = nullptr;
delete fileWriter;
files.clear();