diff options
| author | Anthony <Helios747@users.noreply.github.com> | 2017-06-09 10:49:50 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-06-09 10:49:50 -0700 |
| commit | 20a3cbb8fc6cdf69124282223a4814753bb44cd1 (patch) | |
| tree | 9272298cbd90f7f5e065b41cccd64f4c3f383b78 /Source | |
| parent | c900829eeeded635ddf3fc2af020ce9c36c44a99 (diff) | |
| parent | d2b69f963aff4a0d6f99b379feb1024c06624bb6 (diff) | |
Merge pull request #5587 from JosJuice/volumewii-game-partition-later
VolumeWii: Don't set m_game_partition until we know partition is valid
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/DiscIO/VolumeWii.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/Source/Core/DiscIO/VolumeWii.cpp b/Source/Core/DiscIO/VolumeWii.cpp index 4b6ef56539..ceb1fa5788 100644 --- a/Source/Core/DiscIO/VolumeWii.cpp +++ b/Source/Core/DiscIO/VolumeWii.cpp @@ -65,14 +65,10 @@ VolumeWii::VolumeWii(std::unique_ptr<BlobReader> reader) continue; const u64 partition_offset = static_cast<u64>(*read_buffer) << 2; - // Set m_game_partition if this is the game partition - if (m_game_partition == PARTITION_NONE) - { - const std::optional<u32> partition_type = - m_pReader->ReadSwapped<u32>(partition_table_offset + (i * 8) + 4); - if (partition_type == u32(0)) - m_game_partition = Partition(partition_offset); - } + // Check if this is the game partition + const bool is_game_partition = + m_game_partition == PARTITION_NONE && + m_pReader->ReadSwapped<u32>(partition_table_offset + (i * 8) + 4) == u32(0); // Read ticket std::vector<u8> ticket_buffer(sizeof(IOS::ES::Ticket)); @@ -113,6 +109,8 @@ VolumeWii::VolumeWii(std::unique_ptr<BlobReader> reader) m_partition_keys[partition] = std::move(aes_context); m_partition_tickets[partition] = std::move(ticket); m_partition_tmds[partition] = std::move(tmd); + if (is_game_partition) + m_game_partition = partition; } } } |
