diff options
| author | bunnei <bunneidev@gmail.com> | 2018-10-09 22:29:39 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-10-09 22:29:39 -0400 | 
| commit | 3ac874c32ebba99c5d1402ea6b82277e7f303b93 (patch) | |
| tree | fa616d3b0c8846a143916261f74278d6509233d4 /src/core/file_sys | |
| parent | bc6939beaaa2673541523d7a40965c903d0c3cbc (diff) | |
| parent | 6636f3ff4717886f48b7cd238cd75315952cb112 (diff) | |
Merge pull request #1464 from lioncash/unique
patch_manager: Return a std::unique_ptr from ParseControlNCA() and GetControlMetadata() instead of a std::shared_ptr
Diffstat (limited to 'src/core/file_sys')
| -rw-r--r-- | src/core/file_sys/patch_manager.cpp | 15 | ||||
| -rw-r--r-- | src/core/file_sys/patch_manager.h | 5 | 
2 files changed, 9 insertions, 11 deletions
| diff --git a/src/core/file_sys/patch_manager.cpp b/src/core/file_sys/patch_manager.cpp index b14d7cb0a..019caebe9 100644 --- a/src/core/file_sys/patch_manager.cpp +++ b/src/core/file_sys/patch_manager.cpp @@ -345,23 +345,22 @@ std::map<std::string, std::string, std::less<>> PatchManager::GetPatchVersionNam      return out;  } -std::pair<std::shared_ptr<NACP>, VirtualFile> PatchManager::GetControlMetadata() const { +std::pair<std::unique_ptr<NACP>, VirtualFile> PatchManager::GetControlMetadata() const {      const auto& installed{Service::FileSystem::GetUnionContents()};      const auto base_control_nca = installed->GetEntry(title_id, ContentRecordType::Control);      if (base_control_nca == nullptr)          return {}; -    return ParseControlNCA(base_control_nca); +    return ParseControlNCA(*base_control_nca);  } -std::pair<std::shared_ptr<NACP>, VirtualFile> PatchManager::ParseControlNCA( -    const std::shared_ptr<NCA>& nca) const { -    const auto base_romfs = nca->GetRomFS(); +std::pair<std::unique_ptr<NACP>, VirtualFile> PatchManager::ParseControlNCA(const NCA& nca) const { +    const auto base_romfs = nca.GetRomFS();      if (base_romfs == nullptr)          return {}; -    const auto romfs = PatchRomFS(base_romfs, nca->GetBaseIVFCOffset(), ContentRecordType::Control); +    const auto romfs = PatchRomFS(base_romfs, nca.GetBaseIVFCOffset(), ContentRecordType::Control);      if (romfs == nullptr)          return {}; @@ -373,7 +372,7 @@ std::pair<std::shared_ptr<NACP>, VirtualFile> PatchManager::ParseControlNCA(      if (nacp_file == nullptr)          nacp_file = extracted->GetFile("Control.nacp"); -    const auto nacp = nacp_file == nullptr ? nullptr : std::make_shared<NACP>(nacp_file); +    auto nacp = nacp_file == nullptr ? nullptr : std::make_unique<NACP>(nacp_file);      VirtualFile icon_file;      for (const auto& language : FileSys::LANGUAGE_NAMES) { @@ -382,6 +381,6 @@ std::pair<std::shared_ptr<NACP>, VirtualFile> PatchManager::ParseControlNCA(              break;      } -    return {nacp, icon_file}; +    return {std::move(nacp), icon_file};  }  } // namespace FileSys diff --git a/src/core/file_sys/patch_manager.h b/src/core/file_sys/patch_manager.h index eb6fc4607..7d168837f 100644 --- a/src/core/file_sys/patch_manager.h +++ b/src/core/file_sys/patch_manager.h @@ -57,11 +57,10 @@ public:      // Given title_id of the program, attempts to get the control data of the update and parse it,      // falling back to the base control data. -    std::pair<std::shared_ptr<NACP>, VirtualFile> GetControlMetadata() const; +    std::pair<std::unique_ptr<NACP>, VirtualFile> GetControlMetadata() const;      // Version of GetControlMetadata that takes an arbitrary NCA -    std::pair<std::shared_ptr<NACP>, VirtualFile> ParseControlNCA( -        const std::shared_ptr<NCA>& nca) const; +    std::pair<std::unique_ptr<NACP>, VirtualFile> ParseControlNCA(const NCA& nca) const;  private:      u64 title_id; | 
