David Marcec 7 лет назад
Родитель
Сommit
6ca20ad7ba

+ 1 - 1
src/core/file_sys/control_metadata.cpp

@@ -88,7 +88,7 @@ u64 NACP::GetDefaultJournalSaveSize() const {
 }
 
 bool NACP::GetUserAccountSwitchLock() const {
-    return raw.user_account_switch_lock == 1;
+    return raw.user_account_switch_lock != 0;
 }
 
 u32 NACP::GetSupportedLanguages() const {

+ 11 - 6
src/core/hle/service/acc/acc.cpp

@@ -243,6 +243,8 @@ void Module::Interface::IsUserAccountSwitchLocked(Kernel::HLERequestContext& ctx
 
         if (nacp_unique != nullptr) {
             is_locked = nacp_unique->GetUserAccountSwitchLock();
+        } else {
+            LOG_ERROR(Service_ACC, "nacp_unique is null!");
         }
     } else {
         is_locked = nacp.GetUserAccountSwitchLock();
@@ -285,15 +287,18 @@ Module::Interface::Interface(std::shared_ptr<Module> module,
 
 Module::Interface::~Interface() = default;
 
-void InstallInterfaces(SM::ServiceManager& service_manager) {
+void InstallInterfaces(Core::System& system) {
     auto module = std::make_shared<Module>();
     auto profile_manager = std::make_shared<ProfileManager>();
-    Core::System& system = Core::System::GetInstance();
 
-    std::make_shared<ACC_AA>(module, profile_manager, system)->InstallAsService(service_manager);
-    std::make_shared<ACC_SU>(module, profile_manager, system)->InstallAsService(service_manager);
-    std::make_shared<ACC_U0>(module, profile_manager, system)->InstallAsService(service_manager);
-    std::make_shared<ACC_U1>(module, profile_manager, system)->InstallAsService(service_manager);
+    std::make_shared<ACC_AA>(module, profile_manager, system)
+        ->InstallAsService(system.ServiceManager());
+    std::make_shared<ACC_SU>(module, profile_manager, system)
+        ->InstallAsService(system.ServiceManager());
+    std::make_shared<ACC_U0>(module, profile_manager, system)
+        ->InstallAsService(system.ServiceManager());
+    std::make_shared<ACC_U1>(module, profile_manager, system)
+        ->InstallAsService(system.ServiceManager());
 }
 
 } // namespace Service::Account

+ 1 - 1
src/core/hle/service/acc/acc.h

@@ -39,6 +39,6 @@ public:
 };
 
 /// Registers all ACC services with the specified service manager.
-void InstallInterfaces(SM::ServiceManager& service_manager);
+void InstallInterfaces(Core::System& system);
 
 } // namespace Service::Account

+ 1 - 1
src/core/hle/service/service.cpp

@@ -200,7 +200,7 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm, Core::System& system,
 
     SM::ServiceManager::InstallInterfaces(sm);
 
-    Account::InstallInterfaces(*sm);
+    Account::InstallInterfaces(system);
     AM::InstallInterfaces(*sm, nv_flinger);
     AOC::InstallInterfaces(*sm);
     APM::InstallInterfaces(*sm);