summaryrefslogtreecommitdiff
path: root/src/core/hle/service/service.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/service/service.cpp')
-rw-r--r--src/core/hle/service/service.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp
index e6fba88b2..b3e50433b 100644
--- a/src/core/hle/service/service.cpp
+++ b/src/core/hle/service/service.cpp
@@ -104,23 +104,22 @@ ServiceFrameworkBase::~ServiceFrameworkBase() {
104void ServiceFrameworkBase::InstallAsService(SM::ServiceManager& service_manager) { 104void ServiceFrameworkBase::InstallAsService(SM::ServiceManager& service_manager) {
105 const auto guard = LockService(); 105 const auto guard = LockService();
106 106
107 ASSERT(!port_installed); 107 ASSERT(!service_registered);
108 108
109 auto port = service_manager.RegisterService(service_name, max_sessions).Unwrap(); 109 service_manager.RegisterService(service_name, max_sessions, shared_from_this());
110 port->SetSessionHandler(shared_from_this()); 110 service_registered = true;
111 port_installed = true;
112} 111}
113 112
114Kernel::KClientPort& ServiceFrameworkBase::CreatePort() { 113Kernel::KClientPort& ServiceFrameworkBase::CreatePort() {
115 const auto guard = LockService(); 114 const auto guard = LockService();
116 115
117 ASSERT(!port_installed); 116 ASSERT(!service_registered);
118 117
119 auto* port = Kernel::KPort::Create(kernel); 118 auto* port = Kernel::KPort::Create(kernel);
120 port->Initialize(max_sessions, false, service_name); 119 port->Initialize(max_sessions, false, service_name);
121 port->GetServerPort().SetSessionHandler(shared_from_this()); 120 port->GetServerPort().SetSessionHandler(shared_from_this());
122 121
123 port_installed = true; 122 service_registered = true;
124 123
125 return port->GetClientPort(); 124 return port->GetClientPort();
126} 125}