diff --git a/src/core/hle/service/set/system_settings_server.cpp b/src/core/hle/service/set/system_settings_server.cpp index 0e1a0da235..fcf581c89c 100644 --- a/src/core/hle/service/set/system_settings_server.cpp +++ b/src/core/hle/service/set/system_settings_server.cpp @@ -371,7 +371,7 @@ ISystemSettingsServer::~ISystemSettingsServer() { } bool ISystemSettingsServer::LoadSettingsFile(std::filesystem::path& path, auto&& default_func) { - using settings_type = boost::function_traits::arg1_type; + using settings_type = std::decay_t; if (!Common::FS::CreateDirs(path)) { return false; @@ -381,8 +381,7 @@ bool ISystemSettingsServer::LoadSettingsFile(std::filesystem::path& path, auto&& auto exists = std::filesystem::exists(settings_file); auto file_size_ok = exists && std::filesystem::file_size(settings_file) == sizeof(SettingsHeader) + sizeof(settings_type); auto ResetToDefault = [&]() { - settings_type default_settings = {}; - default_func(default_settings); + auto default_settings = default_func(); SettingsHeader hdr{ .magic = SETTINGS_MAGIC, .version = SETTINGS_VERSION, @@ -1368,7 +1367,8 @@ Result ISystemSettingsServer::GetHttpAuthConfigs(Out out_count, OutBuffersecond; } + return settings; } -static void DefaultPrivateSettings(PrivateSettings& settings) { +static PrivateSettings DefaultPrivateSettings() { + return {}; } -static void DefaultDeviceSettings(DeviceSettings& settings) { +static DeviceSettings DefaultDeviceSettings() { + return {}; } -static void DefaultApplnSettings(ApplnSettings& settings) { +static ApplnSettings DefaultApplnSettings() { + ApplnSettings settings = {}; settings.mii_author_id = Common::UUID::MakeDefault(); + return settings; } // URVO fails on MSVC, causing stack __chkstk to fail due to the sheer bigness of SystemSettings :)