DiscIO: Store partition key directly in ReuseID
This lets us reuse blocks in the case where different partition entries use the same key (which probably isn't very common).
This commit is contained in:
parent
e6dfb08746
commit
eafa2784d6
|
@ -1305,7 +1305,7 @@ WIARVZFileReader<RVZ>::ProcessAndCompress(CompressThreadState* state, CompressPa
|
|||
std::vector<u8>& data = parameters.data;
|
||||
|
||||
if (AllSame(data))
|
||||
entry.reuse_id = ReuseID{nullptr, data.size(), false, data.front()};
|
||||
entry.reuse_id = ReuseID{WiiKey{}, data.size(), false, data.front()};
|
||||
|
||||
if constexpr (RVZ)
|
||||
{
|
||||
|
@ -1344,7 +1344,7 @@ WIARVZFileReader<RVZ>::ProcessAndCompress(CompressThreadState* state, CompressPa
|
|||
const auto create_reuse_id = [&partition_entry, blocks,
|
||||
blocks_per_chunk](u8 value, bool encrypted, u64 block) {
|
||||
const u64 size = std::min(blocks - block, blocks_per_chunk) * VolumeWii::BLOCK_DATA_SIZE;
|
||||
return ReuseID{&partition_entry.partition_key, size, encrypted, value};
|
||||
return ReuseID{partition_entry.partition_key, size, encrypted, value};
|
||||
};
|
||||
|
||||
const u8* parameters_data_end = parameters.data.data() + parameters.data.size();
|
||||
|
|
|
@ -258,7 +258,7 @@ private:
|
|||
|
||||
#undef COMPARE_TIED
|
||||
|
||||
const WiiKey* partition_key;
|
||||
WiiKey partition_key;
|
||||
u64 data_size;
|
||||
bool encrypted;
|
||||
u8 value;
|
||||
|
|
Loading…
Reference in New Issue