diff options
| author | Archez <Archez@users.noreply.github.com> | 2024-05-20 07:20:56 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-20 07:20:56 -0400 |
| commit | c2a891be8ba1d33e09ee39eb4bf1c95e3b753e0e (patch) | |
| tree | 4fc378e5fb7b5e4202e133d9dc5e8f32dfd82b2f | |
| parent | 281e6a626d795d3e3fcdefa23edae503ac499f6e (diff) | |
fix version file buffers not staying alive during o2r unload close (#26)
| -rw-r--r-- | OTRExporter/Main.cpp | 11 |
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(); |
