From 251828ccc0d449ff9da1c823c7fb5aee6c4ace73 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Fri, 9 Jun 2017 12:56:36 +0200 Subject: [PATCH] Don't check validity twice when creating DirectoryBlob --- Source/Core/DiscIO/Blob.cpp | 4 ++-- Source/Core/DiscIO/DirectoryBlob.cpp | 9 +-------- Source/Core/DiscIO/DirectoryBlob.h | 2 -- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/Source/Core/DiscIO/Blob.cpp b/Source/Core/DiscIO/Blob.cpp index 7f4eeccb1c..5e603610b2 100644 --- a/Source/Core/DiscIO/Blob.cpp +++ b/Source/Core/DiscIO/Blob.cpp @@ -203,8 +203,8 @@ std::unique_ptr CreateBlobReader(const std::string& filename) case WBFS_MAGIC: return WbfsFileReader::Create(std::move(file), filename); default: - if (DirectoryBlobReader::IsValidDirectoryBlob(filename)) - return DirectoryBlobReader::Create(filename); + if (auto directory_blob = DirectoryBlobReader::Create(filename)) + return std::move(directory_blob); return PlainFileReader::Create(std::move(file)); } diff --git a/Source/Core/DiscIO/DirectoryBlob.cpp b/Source/Core/DiscIO/DirectoryBlob.cpp index 04c6d352b0..df8dfe59bb 100644 --- a/Source/Core/DiscIO/DirectoryBlob.cpp +++ b/Source/Core/DiscIO/DirectoryBlob.cpp @@ -137,8 +137,7 @@ static bool PathEndsWith(const std::string& path, const std::string& suffix) return true; } -bool DirectoryBlobReader::IsValidDirectoryBlob(const std::string& dol_path, - std::string* root_directory) +static bool IsValidDirectoryBlob(const std::string& dol_path, std::string* root_directory) { if (!PathEndsWith(dol_path, "/sys/main.dol")) return false; @@ -149,12 +148,6 @@ bool DirectoryBlobReader::IsValidDirectoryBlob(const std::string& dol_path, return File::GetSize(*root_directory + "sys/boot.bin") >= 0x20; } -bool DirectoryBlobReader::IsValidDirectoryBlob(const std::string& dol_path) -{ - std::string root_directory; - return IsValidDirectoryBlob(dol_path, &root_directory); -} - std::unique_ptr DirectoryBlobReader::Create(const std::string& dol_path) { std::string root_directory; diff --git a/Source/Core/DiscIO/DirectoryBlob.h b/Source/Core/DiscIO/DirectoryBlob.h index ab42bd159b..1e0056f03c 100644 --- a/Source/Core/DiscIO/DirectoryBlob.h +++ b/Source/Core/DiscIO/DirectoryBlob.h @@ -55,8 +55,6 @@ private: class DirectoryBlobReader : public BlobReader { public: - static bool IsValidDirectoryBlob(const std::string& dol_path, std::string* root_directory); - static bool IsValidDirectoryBlob(const std::string& dol_path); static std::unique_ptr Create(const std::string& dol_path); // We do not allow copying, because it might mess up the pointers inside DiscContents