summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
diff options
context:
space:
mode:
authorGravatar bunnei2014-07-04 13:38:12 -0400
committerGravatar bunnei2014-07-04 20:37:51 -0400
commit542700ccb7e629db21dff3193938e9ada97876c2 (patch)
treee2c8c8ee05e14b51712324b396a3f85d564b1f9a /src/core/hle/kernel
parentMarked AppLoader_ELF, AppLoader_NCCH, and Archive_RomFS virtual functions as ... (diff)
downloadyuzu-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.cpp10
-rw-r--r--src/core/hle/kernel/archive.h6
-rw-r--r--src/core/hle/kernel/kernel.cpp3
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
148void ArchiveInit() {
149 g_archive_map.clear();
150}
151
152/// Shutdown archives
153void 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 */
30Handle CreateArchive(FileSys::Archive* backend, const std::string& name); 30Handle CreateArchive(FileSys::Archive* backend, const std::string& name);
31 31
32/// Initialize archives
33void ArchiveInit();
34
35/// Shutdown archives
36void 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
13namespace Kernel { 14namespace Kernel {
14 15
@@ -133,11 +134,13 @@ Object* ObjectPool::CreateByIDType(int type) {
133/// Initialize the kernel 134/// Initialize the kernel
134void Init() { 135void Init() {
135 Kernel::ThreadingInit(); 136 Kernel::ThreadingInit();
137 Kernel::ArchiveInit();
136} 138}
137 139
138/// Shutdown the kernel 140/// Shutdown the kernel
139void Shutdown() { 141void 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}