aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/client_port.cpp
diff options
context:
space:
mode:
authorYuri Kunde Schlesner <yuriks@yuriks.net>2017-06-05 22:39:26 -0700
committerYuri Kunde Schlesner <yuriks@yuriks.net>2017-06-06 02:56:32 -0700
commit6354d083594249fa1995be7b024943c258f63880 (patch)
treebe459930c35e50f698ef7747730092116eea6a74 /src/core/hle/kernel/client_port.cpp
parent7e5dd46cf4c7be421b6a86a661f6dd9cd1ef4332 (diff)
Kernel: Add a dedicated SetHleHandler method to ServerPort/ServerSession
This allows attaching a HLE handle to a ServerPort at any point after it is created, allowing port/session creation to be generic between HLE and regular services.
Diffstat (limited to 'src/core/hle/kernel/client_port.cpp')
-rw-r--r--src/core/hle/kernel/client_port.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/core/hle/kernel/client_port.cpp b/src/core/hle/kernel/client_port.cpp
index 45533ed45..ce5d94e99 100644
--- a/src/core/hle/kernel/client_port.cpp
+++ b/src/core/hle/kernel/client_port.cpp
@@ -26,20 +26,17 @@ ResultVal<SharedPtr<ClientSession>> ClientPort::Connect() {
active_sessions++;
// Create a new session pair, let the created sessions inherit the parent port's HLE handler.
- auto sessions =
- ServerSession::CreateSessionPair(server_port->GetName(), server_port->hle_handler, this);
- auto client_session = std::get<SharedPtr<ClientSession>>(sessions);
- auto server_session = std::get<SharedPtr<ServerSession>>(sessions);
+ auto sessions = ServerSession::CreateSessionPair(server_port->GetName(), this);
if (server_port->hle_handler)
- server_port->hle_handler->ClientConnected(server_session);
+ server_port->hle_handler->ClientConnected(std::get<SharedPtr<ServerSession>>(sessions));
else
- server_port->pending_sessions.push_back(std::move(server_session));
+ server_port->pending_sessions.push_back(std::get<SharedPtr<ServerSession>>(sessions));
// Wake the threads waiting on the ServerPort
server_port->WakeupAllWaitingThreads();
- return MakeResult<SharedPtr<ClientSession>>(std::move(client_session));
+ return MakeResult(std::get<SharedPtr<ClientSession>>(sessions));
}
} // namespace