summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/service.cpp
diff options
context:
space:
mode:
authorYuri Kunde Schlesner <yuriks@yuriks.net>2017-06-06 07:39:26 +0200
committerYuri Kunde Schlesner <yuriks@yuriks.net>2017-06-06 11:56:32 +0200
commit6354d083594249fa1995be7b024943c258f63880 (patch)
treebe459930c35e50f698ef7747730092116eea6a74 /src/core/hle/service/service.cpp
parentResultVal: Add more convenience utils for creating and cascading results (diff)
downloadyuzu-6354d083594249fa1995be7b024943c258f63880.tar
yuzu-6354d083594249fa1995be7b024943c258f63880.tar.gz
yuzu-6354d083594249fa1995be7b024943c258f63880.tar.bz2
yuzu-6354d083594249fa1995be7b024943c258f63880.tar.lz
yuzu-6354d083594249fa1995be7b024943c258f63880.tar.xz
yuzu-6354d083594249fa1995be7b024943c258f63880.tar.zst
yuzu-6354d083594249fa1995be7b024943c258f63880.zip
Diffstat (limited to 'src/core/hle/service/service.cpp')
-rw-r--r--src/core/hle/service/service.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp
index bb22e25be..8f7c97d54 100644
--- a/src/core/hle/service/service.cpp
+++ b/src/core/hle/service/service.cpp
@@ -105,18 +105,22 @@ void Interface::Register(const FunctionInfo* functions, size_t n) {
// Module interface
static void AddNamedPort(Interface* interface_) {
- auto ports =
- Kernel::ServerPort::CreatePortPair(interface_->GetMaxSessions(), interface_->GetPortName(),
- std::shared_ptr<Interface>(interface_));
- auto client_port = std::get<Kernel::SharedPtr<Kernel::ClientPort>>(ports);
+ Kernel::SharedPtr<Kernel::ServerPort> server_port;
+ Kernel::SharedPtr<Kernel::ClientPort> client_port;
+ std::tie(server_port, client_port) =
+ Kernel::ServerPort::CreatePortPair(interface_->GetMaxSessions(), interface_->GetPortName());
+
+ server_port->SetHleHandler(std::shared_ptr<Interface>(interface_));
g_kernel_named_ports.emplace(interface_->GetPortName(), std::move(client_port));
}
void AddService(Interface* interface_) {
- auto ports =
- Kernel::ServerPort::CreatePortPair(interface_->GetMaxSessions(), interface_->GetPortName(),
- std::shared_ptr<Interface>(interface_));
- auto client_port = std::get<Kernel::SharedPtr<Kernel::ClientPort>>(ports);
+ Kernel::SharedPtr<Kernel::ServerPort> server_port;
+ Kernel::SharedPtr<Kernel::ClientPort> client_port;
+ std::tie(server_port, client_port) =
+ Kernel::ServerPort::CreatePortPair(interface_->GetMaxSessions(), interface_->GetPortName());
+
+ server_port->SetHleHandler(std::shared_ptr<Interface>(interface_));
g_srv_services.emplace(interface_->GetPortName(), std::move(client_port));
}