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) { return handle; } +/// Initialize archives +void ArchiveInit() { + g_archive_map.clear(); +} + +/// Shutdown archives +void ArchiveShutdown() { + g_archive_map.clear(); +} + } // 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); */ Handle CreateArchive(FileSys::Archive* backend, const std::string& name); +/// Initialize archives +void ArchiveInit(); + +/// Shutdown archives +void ArchiveShutdown(); + } // 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 @@ #include "core/core.h" #include "core/hle/kernel/kernel.h" #include "core/hle/kernel/thread.h" +#include "core/hle/kernel/archive.h" namespace Kernel { @@ -133,11 +134,13 @@ Object* ObjectPool::CreateByIDType(int type) { /// Initialize the kernel void Init() { Kernel::ThreadingInit(); + Kernel::ArchiveInit(); } /// Shutdown the kernel void Shutdown() { Kernel::ThreadingShutdown(); + Kernel::ArchiveShutdown(); g_object_pool.Clear(); // Free all kernel objects }