diff options
| author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2016-07-09 20:39:19 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-07-09 20:39:19 -0700 |
| commit | ffda82eea546830d15284810e91e58c5b6627a0c (patch) | |
| tree | 5d0cb7b7f17ef73bd382b08cce863f1b05ed10df /src/core/hle/service/fs/archive.cpp | |
| parent | 6fa7b1f4863a2e6bde07c3f7ddca3ac52da39757 (diff) | |
| parent | ec3e99eec762a380322b0c058e30a69e92fb3c1d (diff) | |
Merge pull request #1894 from wwylele/set-config-block
Implement config savegame editing & clean up
Diffstat (limited to 'src/core/hle/service/fs/archive.cpp')
| -rw-r--r-- | src/core/hle/service/fs/archive.cpp | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/core/hle/service/fs/archive.cpp b/src/core/hle/service/fs/archive.cpp index f4acc4895..4c7aaa7f2 100644 --- a/src/core/hle/service/fs/archive.cpp +++ b/src/core/hle/service/fs/archive.cpp @@ -259,7 +259,7 @@ using FileSys::ArchiveFactory; /** * Map of registered archives, identified by id code. Once an archive is registered here, it is - * never removed until the FS service is shut down. + * never removed until UnregisterArchiveTypes is called. */ static boost::container::flat_map<ArchiveIdCode, std::unique_ptr<ArchiveFactory>> id_code_map; @@ -520,12 +520,7 @@ ResultCode CreateSystemSaveData(u32 high, u32 low) { return RESULT_SUCCESS; } -/// Initialize archives -void ArchiveInit() { - next_handle = 1; - - AddService(new FS::Interface); - +void RegisterArchiveTypes() { // TODO(Subv): Add the other archive types (see here for the known types: // http://3dbrew.org/wiki/FS:OpenArchive#Archive_idcodes). @@ -562,10 +557,23 @@ void ArchiveInit() { RegisterArchiveType(std::move(systemsavedata_factory), ArchiveIdCode::SystemSaveData); } +void UnregisterArchiveTypes() { + id_code_map.clear(); +} + +/// Initialize archives +void ArchiveInit() { + next_handle = 1; + + AddService(new FS::Interface); + + RegisterArchiveTypes(); +} + /// Shutdown archives void ArchiveShutdown() { handle_map.clear(); - id_code_map.clear(); + UnregisterArchiveTypes(); } } // namespace FS |
