system_archive: Use a regular function pointer instead of std::function for file-scope system archive array
This allows the array to be constexpr. std::function is also allowed to allocate memory, which makes its constructor non-trivial, we definitely don't want to have all of these execute at runtime, taking up time before the application can actually load.
This commit is contained in:
parent
db3200b515
commit
edd9bfd54a
|
@ -2,7 +2,6 @@
|
||||||
// Licensed under GPLv2 or any later version
|
// Licensed under GPLv2 or any later version
|
||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
#include <functional>
|
|
||||||
#include "common/logging/log.h"
|
#include "common/logging/log.h"
|
||||||
#include "core/file_sys/romfs.h"
|
#include "core/file_sys/romfs.h"
|
||||||
#include "core/file_sys/system_archive/ng_word.h"
|
#include "core/file_sys/system_archive/ng_word.h"
|
||||||
|
@ -13,7 +12,7 @@ namespace FileSys::SystemArchive {
|
||||||
constexpr u64 SYSTEM_ARCHIVE_BASE_TITLE_ID = 0x0100000000000800;
|
constexpr u64 SYSTEM_ARCHIVE_BASE_TITLE_ID = 0x0100000000000800;
|
||||||
constexpr std::size_t SYSTEM_ARCHIVE_COUNT = 0x28;
|
constexpr std::size_t SYSTEM_ARCHIVE_COUNT = 0x28;
|
||||||
|
|
||||||
using SystemArchiveSupplier = std::function<VirtualDir()>;
|
using SystemArchiveSupplier = VirtualDir (*)();
|
||||||
|
|
||||||
struct SystemArchiveDescriptor {
|
struct SystemArchiveDescriptor {
|
||||||
u64 title_id;
|
u64 title_id;
|
||||||
|
@ -21,7 +20,7 @@ struct SystemArchiveDescriptor {
|
||||||
SystemArchiveSupplier supplier;
|
SystemArchiveSupplier supplier;
|
||||||
};
|
};
|
||||||
|
|
||||||
const std::array<SystemArchiveDescriptor, SYSTEM_ARCHIVE_COUNT> SYSTEM_ARCHIVES = {{
|
constexpr std::array<SystemArchiveDescriptor, SYSTEM_ARCHIVE_COUNT> SYSTEM_ARCHIVES{{
|
||||||
{0x0100000000000800, "CertStore", nullptr},
|
{0x0100000000000800, "CertStore", nullptr},
|
||||||
{0x0100000000000801, "ErrorMessage", nullptr},
|
{0x0100000000000801, "ErrorMessage", nullptr},
|
||||||
{0x0100000000000802, "MiiModel", nullptr},
|
{0x0100000000000802, "MiiModel", nullptr},
|
||||||
|
|
Reference in New Issue