summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2017-06-09 12:56:36 +0200
committerJosJuice <josjuice@gmail.com>2017-08-01 11:36:40 +0200
commit251828ccc0d449ff9da1c823c7fb5aee6c4ace73 (patch)
treee3e855e394c6d52ec920c675e6631c48526afe56 /Source
parenta6bbf7e21b7ae1c0d11feb3acb88875b7b6e30ca (diff)
Don't check validity twice when creating DirectoryBlob
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/DiscIO/Blob.cpp4
-rw-r--r--Source/Core/DiscIO/DirectoryBlob.cpp9
-rw-r--r--Source/Core/DiscIO/DirectoryBlob.h2
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<BlobReader> 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> 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<DirectoryBlobReader> Create(const std::string& dol_path);
// We do not allow copying, because it might mess up the pointers inside DiscContents