summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2018-01-22 17:30:58 -0500
committerSubv <subv2112@gmail.com>2018-01-22 17:31:23 -0500
commit67c43e92005c34da08005cf9f9b542874c5c4005 (patch)
tree6459d97221848243a54a9bf8a81036f51ad1466b /src/core
parentde2e5a0855c11f8ef284708d2b55fa156594d1c4 (diff)
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:
if (context->IsDomain()) {
context->AddDomainObject(std::move(iface));
} else {
- auto port = iface->CreatePort();
- auto session = port->Connect();
- ASSERT(session.Succeeded());
- context->AddMoveObject(std::move(session).Unwrap());
+ auto sessions = Kernel::ServerSession::CreateSessionPair(iface->GetServiceName());
+ auto server = std::get<Kernel::SharedPtr<Kernel::ServerSession>>(sessions);
+ auto client = std::get<Kernel::SharedPtr<Kernel::ClientSession>>(sessions);
+ iface->ClientConnected(server);
+ context->AddMoveObject(std::move(client));
}
}