Browse Source

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

pull/15/merge
bunnei 12 years ago
parent
commit
542700ccb7
  1. 10
      src/core/hle/kernel/archive.cpp
  2. 6
      src/core/hle/kernel/archive.h
  3. 3
      src/core/hle/kernel/kernel.cpp

10
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
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
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
} }

Loading…
Cancel
Save