summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
diff options
context:
space:
mode:
authorGravatar Subv2016-12-08 11:06:19 -0500
committerGravatar Subv2016-12-08 11:06:19 -0500
commitf9bcf895103e5a6d99f5fe755bcac92b7781fd38 (patch)
treeaebba4794da82175756a09e7d4d1de8d835bf412 /src/core/hle/kernel
parentReturn an error code when connecting to a saturated port. (diff)
downloadyuzu-f9bcf895103e5a6d99f5fe755bcac92b7781fd38.tar.gz
yuzu-f9bcf895103e5a6d99f5fe755bcac92b7781fd38.tar.xz
yuzu-f9bcf895103e5a6d99f5fe755bcac92b7781fd38.zip
Use std::move where appropriate.
Diffstat (limited to 'src/core/hle/kernel')
-rw-r--r--src/core/hle/kernel/client_port.cpp5
-rw-r--r--src/core/hle/kernel/client_session.cpp2
-rw-r--r--src/core/hle/kernel/server_port.cpp2
-rw-r--r--src/core/hle/kernel/server_session.cpp7
-rw-r--r--src/core/hle/kernel/server_session.h4
5 files changed, 13 insertions, 7 deletions
diff --git a/src/core/hle/kernel/client_port.cpp b/src/core/hle/kernel/client_port.cpp
index 120ce554d..20179e546 100644
--- a/src/core/hle/kernel/client_port.cpp
+++ b/src/core/hle/kernel/client_port.cpp
@@ -15,6 +15,9 @@ ClientPort::ClientPort() {}
15ClientPort::~ClientPort() {} 15ClientPort::~ClientPort() {}
16 16
17ResultVal<SharedPtr<ClientSession>> ClientPort::Connect() { 17ResultVal<SharedPtr<ClientSession>> ClientPort::Connect() {
18 // Note: Threads do not wait for the server endpoint to call
19 // AcceptSession before returning from this call.
20
18 if (active_sessions >= max_sessions) { 21 if (active_sessions >= max_sessions) {
19 return ResultCode(ErrorDescription::MaxConnectionsReached, 22 return ResultCode(ErrorDescription::MaxConnectionsReached,
20 ErrorModule::OS, ErrorSummary::WouldBlock, 23 ErrorModule::OS, ErrorSummary::WouldBlock,
@@ -27,7 +30,7 @@ ResultVal<SharedPtr<ClientSession>> ClientPort::Connect() {
27 auto client_session = std::get<SharedPtr<ClientSession>>(sessions); 30 auto client_session = std::get<SharedPtr<ClientSession>>(sessions);
28 auto server_session = std::get<SharedPtr<ServerSession>>(sessions); 31 auto server_session = std::get<SharedPtr<ServerSession>>(sessions);
29 32
30 server_port->pending_sessions.push_back(server_session); 33 server_port->pending_sessions.push_back(std::move(server_session));
31 34
32 // Wake the threads waiting on the ServerPort 35 // Wake the threads waiting on the ServerPort
33 server_port->WakeupAllWaitingThreads(); 36 server_port->WakeupAllWaitingThreads();
diff --git a/src/core/hle/kernel/client_session.cpp b/src/core/hle/kernel/client_session.cpp
index 6c577610d..30ef10764 100644
--- a/src/core/hle/kernel/client_session.cpp
+++ b/src/core/hle/kernel/client_session.cpp
@@ -16,7 +16,7 @@ ResultVal<SharedPtr<ClientSession>> ClientSession::Create(SharedPtr<ServerSessio
16 SharedPtr<ClientSession> client_session(new ClientSession); 16 SharedPtr<ClientSession> client_session(new ClientSession);
17 17
18 client_session->name = std::move(name); 18 client_session->name = std::move(name);
19 client_session->server_session = server_session; 19 client_session->server_session = std::move(server_session);
20 return MakeResult<SharedPtr<ClientSession>>(std::move(client_session)); 20 return MakeResult<SharedPtr<ClientSession>>(std::move(client_session));
21} 21}
22 22
diff --git a/src/core/hle/kernel/server_port.cpp b/src/core/hle/kernel/server_port.cpp
index f90fe76d5..f7699f023 100644
--- a/src/core/hle/kernel/server_port.cpp
+++ b/src/core/hle/kernel/server_port.cpp
@@ -30,7 +30,7 @@ std::tuple<SharedPtr<ServerPort>, SharedPtr<ClientPort>> ServerPort::CreatePortP
30 SharedPtr<ClientPort> client_port(new ClientPort); 30 SharedPtr<ClientPort> client_port(new ClientPort);
31 31
32 server_port->name = name + "_Server"; 32 server_port->name = name + "_Server";
33 server_port->hle_handler = hle_handler; 33 server_port->hle_handler = std::move(hle_handler);
34 client_port->name = name + "_Client"; 34 client_port->name = name + "_Client";
35 client_port->server_port = server_port; 35 client_port->server_port = server_port;
36 client_port->max_sessions = max_sessions; 36 client_port->max_sessions = max_sessions;
diff --git a/src/core/hle/kernel/server_session.cpp b/src/core/hle/kernel/server_session.cpp
index 3782cb493..f8bccadfd 100644
--- a/src/core/hle/kernel/server_session.cpp
+++ b/src/core/hle/kernel/server_session.cpp
@@ -18,7 +18,7 @@ ResultVal<SharedPtr<ServerSession>> ServerSession::Create(std::string name, std:
18 18
19 server_session->name = std::move(name); 19 server_session->name = std::move(name);
20 server_session->signaled = false; 20 server_session->signaled = false;
21 server_session->hle_handler = hle_handler; 21 server_session->hle_handler = std::move(hle_handler);
22 22
23 return MakeResult<SharedPtr<ServerSession>>(std::move(server_session)); 23 return MakeResult<SharedPtr<ServerSession>>(std::move(server_session));
24} 24}
@@ -46,8 +46,9 @@ ResultCode ServerSession::HandleSyncRequest() {
46 return RESULT_SUCCESS; 46 return RESULT_SUCCESS;
47} 47}
48 48
49std::tuple<SharedPtr<ServerSession>, SharedPtr<ClientSession>> ServerSession::CreateSessionPair(const std::string& name, std::shared_ptr<Service::SessionRequestHandler> hle_handler) { 49ServerSession::SessionPair ServerSession::CreateSessionPair(const std::string& name,
50 auto server_session = ServerSession::Create(name + "_Server", hle_handler).MoveFrom(); 50 std::shared_ptr<Service::SessionRequestHandler> hle_handler) {
51 auto server_session = ServerSession::Create(name + "_Server", std::move(hle_handler)).MoveFrom();
51 auto client_session = ClientSession::Create(server_session, name + "_Client").MoveFrom(); 52 auto client_session = ClientSession::Create(server_session, name + "_Client").MoveFrom();
52 53
53 return std::make_tuple(std::move(server_session), std::move(client_session)); 54 return std::make_tuple(std::move(server_session), std::move(client_session));
diff --git a/src/core/hle/kernel/server_session.h b/src/core/hle/kernel/server_session.h
index c73ccee73..7f00db07b 100644
--- a/src/core/hle/kernel/server_session.h
+++ b/src/core/hle/kernel/server_session.h
@@ -40,12 +40,14 @@ public:
40 return HANDLE_TYPE; 40 return HANDLE_TYPE;
41 } 41 }
42 42
43 using SessionPair = std::tuple<SharedPtr<ServerSession>, SharedPtr<ClientSession>>;
44
43 /** 45 /**
44 * Creates a pair of ServerSession and an associated ClientSession. 46 * Creates a pair of ServerSession and an associated ClientSession.
45 * @param name Optional name of the ports 47 * @param name Optional name of the ports
46 * @return The created session tuple 48 * @return The created session tuple
47 */ 49 */
48 static std::tuple<SharedPtr<ServerSession>, SharedPtr<ClientSession>> CreateSessionPair(const std::string& name = "Unknown", std::shared_ptr<Service::SessionRequestHandler> hle_handler = nullptr); 50 static SessionPair CreateSessionPair(const std::string& name = "Unknown", std::shared_ptr<Service::SessionRequestHandler> hle_handler = nullptr);
49 51
50 /** 52 /**
51 * Handle a sync request from the emulated application. 53 * Handle a sync request from the emulated application.