summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO/CachedBlob.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2026-02-16 20:17:21 +0100
committerGitHub <noreply@github.com>2026-02-16 20:17:21 +0100
commit23f5d096ae750ec1f87a05026f8279f28221692f (patch)
tree8526aab1b5e2fd67fd3b967863bc93c965c5e679 /Source/Core/DiscIO/CachedBlob.cpp
parentd6b5af57d01a04918e9ec849689b6d39b8e33591 (diff)
parentbc0c3d9f6a4f547ee3427f42d1704f5d1ae67b7e (diff)
Merge pull request #13844 from crediar/master
Core: Triforce support
Diffstat (limited to 'Source/Core/DiscIO/CachedBlob.cpp')
-rw-r--r--Source/Core/DiscIO/CachedBlob.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/Source/Core/DiscIO/CachedBlob.cpp b/Source/Core/DiscIO/CachedBlob.cpp
index 98ed8ba31f..f1bbf055ee 100644
--- a/Source/Core/DiscIO/CachedBlob.cpp
+++ b/Source/Core/DiscIO/CachedBlob.cpp
@@ -219,6 +219,8 @@ public:
return m_cache_filler->Read(offset, size, out_ptr) || m_reader->Read(offset, size, out_ptr);
}
+ bool IsCached() const override { return true; }
+
private:
// A shared object does the cache filling for sensible CopyReader behavior.
const std::shared_ptr<CacheFiller> m_cache_filler;
@@ -228,11 +230,17 @@ private:
std::unique_ptr<BlobReader> CreateCachedBlobReader(std::unique_ptr<BlobReader> reader)
{
+ if (reader->IsCached()) // This is already CachedBlobReader.
+ return reader;
+
return std::make_unique<CachedBlobReader>(std::move(reader), false);
}
std::unique_ptr<BlobReader> CreateScrubbingCachedBlobReader(std::unique_ptr<BlobReader> reader)
{
+ if (reader->IsCached()) // This reader is already a CachedBlobReader.
+ return reader;
+
return std::make_unique<CachedBlobReader>(std::move(reader), true);
}