From 213b6cc672b1149224dba7c040229e728264a717 Mon Sep 17 00:00:00 2001 From: Matt Date: Mon, 28 Sep 2020 20:16:52 +0300 Subject: [PATCH] Use unique_ptr for GetStreamFromRCT2Scenario --- src/openrct2/scenario/ScenarioRepository.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/openrct2/scenario/ScenarioRepository.cpp b/src/openrct2/scenario/ScenarioRepository.cpp index 7205d32150..14dadb9301 100644 --- a/src/openrct2/scenario/ScenarioRepository.cpp +++ b/src/openrct2/scenario/ScenarioRepository.cpp @@ -204,16 +204,18 @@ protected: } private: - static IStream* GetStreamFromRCT2Scenario(const std::string& path) + static std::unique_ptr GetStreamFromRCT2Scenario(const std::string& path) { if (String::Equals(Path::GetExtension(path), ".sea", true)) { auto data = DecryptSea(fs::u8path(path)); - auto ms = new MemoryStream(data.data(), data.size(), MEMORY_ACCESS::READ); + auto ms = std::make_unique(); + ms->Write(data.data(), data.size()); + ms->SetPosition(0); return ms; } - auto fs = new FileStream(path, FILE_MODE_OPEN); + auto fs = std::make_unique(path, FILE_MODE_OPEN); return fs; } @@ -250,7 +252,7 @@ private: { // RCT2 or RCTC scenario auto stream = GetStreamFromRCT2Scenario(path); - auto chunkReader = SawyerChunkReader(stream); + auto chunkReader = SawyerChunkReader(stream.get()); rct_s6_header header = chunkReader.ReadChunkAs(); if (header.type == S6_TYPE_SCENARIO) @@ -265,12 +267,10 @@ private: } *entry = CreateNewScenarioEntry(path, timestamp, &info); - delete stream; return true; } else { - delete stream; log_verbose("%s is not a scenario", path.c_str()); } }