aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/sm/sm.cpp
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2023-12-09 11:22:42 -0500
committerLiam <byteslice@airmail.cc>2023-12-09 13:45:25 -0500
commit34e40129989e446db7233c9b757d4ebd48af7e75 (patch)
tree42fa67cdc03cc901eec752fddb6c462ff762a630 /src/core/hle/service/sm/sm.cpp
parentc1924951ad604417a5f7900427bff4ab0c8286a7 (diff)
service: use interface factory in server manager
Diffstat (limited to 'src/core/hle/service/sm/sm.cpp')
-rw-r--r--src/core/hle/service/sm/sm.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/core/hle/service/sm/sm.cpp b/src/core/hle/service/sm/sm.cpp
index 9ab718e0a..53209537f 100644
--- a/src/core/hle/service/sm/sm.cpp
+++ b/src/core/hle/service/sm/sm.cpp
@@ -51,7 +51,7 @@ static Result ValidateServiceName(const std::string& name) {
}
Result ServiceManager::RegisterService(std::string name, u32 max_sessions,
- SessionRequestHandlerPtr handler) {
+ SessionRequestHandlerFactory handler) {
R_TRY(ValidateServiceName(name));
std::scoped_lock lk{lock};
@@ -264,7 +264,9 @@ void LoopProcess(Core::System& system) {
server_manager->ManageDeferral(&deferral_event);
service_manager.SetDeferralEvent(deferral_event);
- server_manager->ManageNamedPort("sm:", std::make_shared<SM>(system.ServiceManager(), system));
+ auto sm_service = std::make_shared<SM>(system.ServiceManager(), system);
+ server_manager->ManageNamedPort("sm:", [sm_service] { return sm_service; });
+
ServerManager::RunServer(std::move(server_manager));
}