diff options
| author | JMC47 <JMC4789@gmail.com> | 2023-10-01 11:39:37 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-01 11:39:37 -0400 |
| commit | cd366c4f46dad509b959a05afad3847218ffe5f6 (patch) | |
| tree | f8baa6b501072d3402ad9462a6c556e419b75a0b /Source/Core/DiscIO/RiivolutionPatcher.cpp | |
| parent | d55d878b178b57f1aa4b0eb6235194d44c6c6f6b (diff) | |
| parent | 335cf4f2db4160ebbf387aeb19dc637182c91c5a (diff) | |
Merge pull request #12036 from LillyJadeKatrin/deep-copy-volume
Added CopyReader to BlobReader and all subclasses
Diffstat (limited to 'Source/Core/DiscIO/RiivolutionPatcher.cpp')
| -rw-r--r-- | Source/Core/DiscIO/RiivolutionPatcher.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/Source/Core/DiscIO/RiivolutionPatcher.cpp b/Source/Core/DiscIO/RiivolutionPatcher.cpp index 309e9e5ea1..9362a3930a 100644 --- a/Source/Core/DiscIO/RiivolutionPatcher.cpp +++ b/Source/Core/DiscIO/RiivolutionPatcher.cpp @@ -234,13 +234,23 @@ static void SplitAt(BuilderContentSource* before, BuilderContentSource* after, u after->m_offset += before->m_size; after->m_size = end - split_at; if (std::holds_alternative<ContentFile>(after->m_source)) + { std::get<ContentFile>(after->m_source).m_offset += before->m_size; - else if (std::holds_alternative<const u8*>(after->m_source)) - std::get<const u8*>(after->m_source) += before->m_size; + } + else if (std::holds_alternative<ContentMemory>(after->m_source)) + { + after->m_source = std::make_shared<std::vector<u8>>( + std::get<ContentMemory>(after->m_source)->begin() + before->m_size, + std::get<ContentMemory>(after->m_source)->end()); + } else if (std::holds_alternative<ContentPartition>(after->m_source)) + { std::get<ContentPartition>(after->m_source).m_offset += before->m_size; + } else if (std::holds_alternative<ContentVolume>(after->m_source)) + { std::get<ContentVolume>(after->m_source).m_offset += before->m_size; + } } static void ApplyPatchToFile(const Patch& patch, DiscIO::FSTBuilderNode* file_node, |
