summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorGravatar Subv2018-01-22 17:30:58 -0500
committerGravatar Subv2018-01-22 17:31:23 -0500
commit67c43e92005c34da08005cf9f9b542874c5c4005 (patch)
tree6459d97221848243a54a9bf8a81036f51ad1466b /src/core
parentMerge pull request #134 from gdkchan/audout_hid_fix (diff)
downloadyuzu-67c43e92005c34da08005cf9f9b542874c5c4005.tar.gz
yuzu-67c43e92005c34da08005cf9f9b542874c5c4005.tar.xz
yuzu-67c43e92005c34da08005cf9f9b542874c5c4005.zip
IPC: Don't create an unnecessary port when using PushIpcInterface outside of a domain.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/hle/ipc_helpers.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/core/hle/ipc_helpers.h b/src/core/hle/ipc_helpers.h
index a27cfbc2d..ab479b49b 100644
--- a/src/core/hle/ipc_helpers.h
+++ b/src/core/hle/ipc_helpers.h
@@ -118,10 +118,11 @@ public:
118 if (context->IsDomain()) { 118 if (context->IsDomain()) {
119 context->AddDomainObject(std::move(iface)); 119 context->AddDomainObject(std::move(iface));
120 } else { 120 } else {
121 auto port = iface->CreatePort(); 121 auto sessions = Kernel::ServerSession::CreateSessionPair(iface->GetServiceName());
122 auto session = port->Connect(); 122 auto server = std::get<Kernel::SharedPtr<Kernel::ServerSession>>(sessions);
123 ASSERT(session.Succeeded()); 123 auto client = std::get<Kernel::SharedPtr<Kernel::ClientSession>>(sessions);
124 context->AddMoveObject(std::move(session).Unwrap()); 124 iface->ClientConnected(server);
125 context->AddMoveObject(std::move(client));
125 } 126 }
126 } 127 }
127 128