diff options
author | Subv <subv2112@gmail.com> | 2018-01-22 17:30:58 -0500 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2018-01-22 17:31:23 -0500 |
commit | 67c43e92005c34da08005cf9f9b542874c5c4005 (patch) | |
tree | 6459d97221848243a54a9bf8a81036f51ad1466b /src/core | |
parent | de2e5a0855c11f8ef284708d2b55fa156594d1c4 (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.h | 9 |
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)); } } |