Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #9166 from JosJuice/encryption-cache-move
DiscIO: Make WiiEncryptionCache moveable
  • Loading branch information
leoetlino committed Oct 20, 2020
2 parents 96cb278 + 5b6f604 commit b2709b8
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
3 changes: 3 additions & 0 deletions Source/Core/DiscIO/WiiEncryptionCache.cpp
Expand Up @@ -29,7 +29,10 @@ WiiEncryptionCache::EncryptGroup(u64 offset, u64 partition_data_offset,
{
// Only allocate memory if this function actually ends up getting called
if (!m_cache)
{
m_cache = std::make_unique<std::array<u8, VolumeWii::GROUP_TOTAL_SIZE>>();
m_cached_offset = std::numeric_limits<u64>::max();
}

ASSERT(offset % VolumeWii::GROUP_TOTAL_SIZE == 0);
const u64 group_offset_in_partition =
Expand Down
10 changes: 9 additions & 1 deletion Source/Core/DiscIO/WiiEncryptionCache.h
Expand Up @@ -26,6 +26,14 @@ class WiiEncryptionCache
explicit WiiEncryptionCache(BlobReader* blob);
~WiiEncryptionCache();

WiiEncryptionCache(WiiEncryptionCache&&) = default;
WiiEncryptionCache& operator=(WiiEncryptionCache&&) = default;

// It would be possible to write a custom copy constructor and assignment operator
// for this class, but there has been no reason to do so.
WiiEncryptionCache(const WiiEncryptionCache&) = delete;
WiiEncryptionCache& operator=(const WiiEncryptionCache&) = delete;

// Encrypts exactly one group.
// If the returned pointer is nullptr, reading from the blob failed.
// If the returned pointer is not nullptr, it is guaranteed to be valid until
Expand All @@ -43,7 +51,7 @@ class WiiEncryptionCache
private:
BlobReader* m_blob;
std::unique_ptr<std::array<u8, VolumeWii::GROUP_TOTAL_SIZE>> m_cache;
u64 m_cached_offset = std::numeric_limits<u64>::max();
u64 m_cached_offset;
};

} // namespace DiscIO

0 comments on commit b2709b8

Please sign in to comment.