diff options
| author | briaguya <70942617+briaguya0@users.noreply.github.com> | 2026-08-12 20:22:50 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-12 20:22:50 -0400 |
| commit | 2ab12fe9660aec04e02ee89fe81baed304a1a1d6 (patch) | |
| tree | 2611f0a521e6c60d18dc8b52316512db03e0f36c /src | |
| parent | a1ca27149d60b636168ded60ebd6e04b906c3008 (diff) | |
Remove redundant copies from the asset parse path (#252)
Diffstat (limited to 'src')
| -rw-r--r-- | src/Companion.cpp | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/src/Companion.cpp b/src/Companion.cpp index ee244a0..d73b616 100644 --- a/src/Companion.cpp +++ b/src/Companion.cpp @@ -1985,18 +1985,18 @@ std::optional<std::string> Companion::GetEnumFromValue(const std::string& key, i std::optional<std::uint32_t> Companion::GetFileOffsetFromSegmentedAddr(const uint8_t segment) const { - auto segments = this->gConfig.segment; + const auto& segments = this->gConfig.segment; - if (Torch::contains(segments.temporal, segment)) { - return segments.temporal[segment]; + if (const auto it = segments.temporal.find(segment); it != segments.temporal.end()) { + return it->second; } - if (Torch::contains(segments.local, segment)) { - return segments.local[segment]; + if (const auto it = segments.local.find(segment); it != segments.local.end()) { + return it->second; } - if (Torch::contains(segments.global, segment)) { - return segments.global[segment]; + if (const auto it = segments.global.find(segment); it != segments.global.end()) { + return it->second; } return std::nullopt; @@ -2065,13 +2065,19 @@ ResolvedAddr Companion::ResolveVirtualAddr(uint32_t addr) { std::optional<std::pair<std::uint32_t, std::uint32_t>> Companion::GetFileOffsetFromCompressedSegmentedAddr(const uint8_t segment) const { - auto segments = this->gConfig.segment; + const auto& compressed = this->gConfig.segment.compressed; - if (segments.compressed[this->gCurrentFile].contains(segment)) { - return segments.compressed[this->gCurrentFile][segment]; + const auto file = compressed.find(this->gCurrentFile); + if (file == compressed.end()) { + return std::nullopt; } - return std::nullopt; + const auto entry = file->second.find(segment); + if (entry == file->second.end()) { + return std::nullopt; + } + + return entry->second; } uint32_t Companion::PatchVirtualAddr(uint32_t addr) { @@ -2531,7 +2537,6 @@ std::optional<YAML::Node> Companion::AddAsset(YAML::Node asset) { } } - auto rom = this->GetRomData(); auto factory = this->GetFactory(type); if (!factory.has_value()) { |
