diff options
| author | 2014-07-04 13:38:12 -0400 | |
|---|---|---|
| committer | 2014-07-04 20:37:51 -0400 | |
| commit | 542700ccb7e629db21dff3193938e9ada97876c2 (patch) | |
| tree | e2c8c8ee05e14b51712324b396a3f85d564b1f9a /src/core/hle/kernel | |
| parent | Marked AppLoader_ELF, AppLoader_NCCH, and Archive_RomFS virtual functions as ... (diff) | |
| download | yuzu-542700ccb7e629db21dff3193938e9ada97876c2.tar.gz yuzu-542700ccb7e629db21dff3193938e9ada97876c2.tar.xz yuzu-542700ccb7e629db21dff3193938e9ada97876c2.zip | |
Archive: Added Init/Shutdown methods to reset kernel archive state.
Diffstat (limited to 'src/core/hle/kernel')
| -rw-r--r-- | src/core/hle/kernel/archive.cpp | 10 | ||||
| -rw-r--r-- | src/core/hle/kernel/archive.h | 6 | ||||
| -rw-r--r-- | src/core/hle/kernel/kernel.cpp | 3 |
3 files changed, 19 insertions, 0 deletions
diff --git a/src/core/hle/kernel/archive.cpp b/src/core/hle/kernel/archive.cpp index f31c02ea9..76b2520da 100644 --- a/src/core/hle/kernel/archive.cpp +++ b/src/core/hle/kernel/archive.cpp | |||
| @@ -144,4 +144,14 @@ Handle CreateArchive(FileSys::Archive* backend, const std::string& name) { | |||
| 144 | return handle; | 144 | return handle; |
| 145 | } | 145 | } |
| 146 | 146 | ||
| 147 | /// Initialize archives | ||
| 148 | void ArchiveInit() { | ||
| 149 | g_archive_map.clear(); | ||
| 150 | } | ||
| 151 | |||
| 152 | /// Shutdown archives | ||
| 153 | void ArchiveShutdown() { | ||
| 154 | g_archive_map.clear(); | ||
| 155 | } | ||
| 156 | |||
| 147 | } // namespace Kernel | 157 | } // namespace Kernel |
diff --git a/src/core/hle/kernel/archive.h b/src/core/hle/kernel/archive.h index 07fb37ae7..3758e7061 100644 --- a/src/core/hle/kernel/archive.h +++ b/src/core/hle/kernel/archive.h | |||
| @@ -29,4 +29,10 @@ Handle OpenArchive(FileSys::Archive::IdCode id_code); | |||
| 29 | */ | 29 | */ |
| 30 | Handle CreateArchive(FileSys::Archive* backend, const std::string& name); | 30 | Handle CreateArchive(FileSys::Archive* backend, const std::string& name); |
| 31 | 31 | ||
| 32 | /// Initialize archives | ||
| 33 | void ArchiveInit(); | ||
| 34 | |||
| 35 | /// Shutdown archives | ||
| 36 | void ArchiveShutdown(); | ||
| 37 | |||
| 32 | } // namespace FileSys | 38 | } // namespace FileSys |
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index cda183add..7d9bd261e 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | #include "core/core.h" | 9 | #include "core/core.h" |
| 10 | #include "core/hle/kernel/kernel.h" | 10 | #include "core/hle/kernel/kernel.h" |
| 11 | #include "core/hle/kernel/thread.h" | 11 | #include "core/hle/kernel/thread.h" |
| 12 | #include "core/hle/kernel/archive.h" | ||
| 12 | 13 | ||
| 13 | namespace Kernel { | 14 | namespace Kernel { |
| 14 | 15 | ||
| @@ -133,11 +134,13 @@ Object* ObjectPool::CreateByIDType(int type) { | |||
| 133 | /// Initialize the kernel | 134 | /// Initialize the kernel |
| 134 | void Init() { | 135 | void Init() { |
| 135 | Kernel::ThreadingInit(); | 136 | Kernel::ThreadingInit(); |
| 137 | Kernel::ArchiveInit(); | ||
| 136 | } | 138 | } |
| 137 | 139 | ||
| 138 | /// Shutdown the kernel | 140 | /// Shutdown the kernel |
| 139 | void Shutdown() { | 141 | void Shutdown() { |
| 140 | Kernel::ThreadingShutdown(); | 142 | Kernel::ThreadingShutdown(); |
| 143 | Kernel::ArchiveShutdown(); | ||
| 141 | 144 | ||
| 142 | g_object_pool.Clear(); // Free all kernel objects | 145 | g_object_pool.Clear(); // Free all kernel objects |
| 143 | } | 146 | } |