Bladeren bron

Archive: Added Init/Shutdown methods to reset kernel archive state.

bunnei 12 jaren geleden
bovenliggende
commit
542700ccb7
3 gewijzigde bestanden met toevoegingen van 19 en 0 verwijderingen
  1. 10 0
      src/core/hle/kernel/archive.cpp
  2. 6 0
      src/core/hle/kernel/archive.h
  3. 3 0
      src/core/hle/kernel/kernel.cpp

+ 10 - 0
src/core/hle/kernel/archive.cpp

@@ -144,4 +144,14 @@ Handle CreateArchive(FileSys::Archive* backend, const std::string& name) {
     return handle;
     return handle;
 }
 }
 
 
+/// Initialize archives
+void ArchiveInit() {
+    g_archive_map.clear();
+}
+
+/// Shutdown archives
+void ArchiveShutdown() {
+    g_archive_map.clear();
+}
+
 } // namespace Kernel
 } // namespace Kernel

+ 6 - 0
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);
 Handle CreateArchive(FileSys::Archive* backend, const std::string& name);
 
 
+/// Initialize archives
+void ArchiveInit();
+
+/// Shutdown archives
+void ArchiveShutdown();
+
 } // namespace FileSys
 } // namespace FileSys

+ 3 - 0
src/core/hle/kernel/kernel.cpp

@@ -9,6 +9,7 @@
 #include "core/core.h"
 #include "core/core.h"
 #include "core/hle/kernel/kernel.h"
 #include "core/hle/kernel/kernel.h"
 #include "core/hle/kernel/thread.h"
 #include "core/hle/kernel/thread.h"
+#include "core/hle/kernel/archive.h"
 
 
 namespace Kernel {
 namespace Kernel {
 
 
@@ -133,11 +134,13 @@ Object* ObjectPool::CreateByIDType(int type) {
 /// Initialize the kernel
 /// Initialize the kernel
 void Init() {
 void Init() {
     Kernel::ThreadingInit();
     Kernel::ThreadingInit();
+    Kernel::ArchiveInit();
 }
 }
 
 
 /// Shutdown the kernel
 /// Shutdown the kernel
 void Shutdown() {
 void Shutdown() {
     Kernel::ThreadingShutdown();
     Kernel::ThreadingShutdown();
+    Kernel::ArchiveShutdown();
 
 
     g_object_pool.Clear(); // Free all kernel objects
     g_object_pool.Clear(); // Free all kernel objects
 }
 }