summaryrefslogtreecommitdiff
path: root/src/core/hle/service/service.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2021-07-23 21:23:56 -0400
committerGravatar GitHub2021-07-23 21:23:56 -0400
commit2656020608e32f1f0120dead047b61302bcb4461 (patch)
tree0f4b89d1e51ceb1232eec020d0fe22c7d8b7f930 /src/core/hle/service/service.cpp
parentMerge pull request #6686 from ReinUsesLisp/vk-optimal-copy (diff)
parenthle: service: kernel_helpers: Remove unnecessary pragma once. (diff)
downloadyuzu-2656020608e32f1f0120dead047b61302bcb4461.tar.gz
yuzu-2656020608e32f1f0120dead047b61302bcb4461.tar.xz
yuzu-2656020608e32f1f0120dead047b61302bcb4461.zip
Merge pull request #6551 from bunnei/improve-kernel-obj
Improve management of kernel objects
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}