diff options
| author | 2017-10-31 19:30:05 -0400 | |
|---|---|---|
| committer | 2017-10-31 19:30:05 -0400 | |
| commit | 3597650f221036deb382d4e8812e717014619eee (patch) | |
| tree | e16f1231d1423a16edf40735b9462187d0792138 /src/core/hle/kernel | |
| parent | hle: Use Switch formatted result codes. (diff) | |
| download | yuzu-3597650f221036deb382d4e8812e717014619eee.tar.gz yuzu-3597650f221036deb382d4e8812e717014619eee.tar.xz yuzu-3597650f221036deb382d4e8812e717014619eee.zip | |
service: Return proper result code for IPC::CommandType::Close.
Diffstat (limited to 'src/core/hle/kernel')
| -rw-r--r-- | src/core/hle/kernel/hle_ipc.h | 2 | ||||
| -rw-r--r-- | src/core/hle/kernel/server_session.cpp | 11 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h index b58e57b14..bf8cfc2a3 100644 --- a/src/core/hle/kernel/hle_ipc.h +++ b/src/core/hle/kernel/hle_ipc.h | |||
| @@ -40,7 +40,7 @@ public: | |||
| 40 | * this request (ServerSession, Originator thread, Translated command buffer, etc). | 40 | * this request (ServerSession, Originator thread, Translated command buffer, etc). |
| 41 | * @returns ResultCode the result code of the translate operation. | 41 | * @returns ResultCode the result code of the translate operation. |
| 42 | */ | 42 | */ |
| 43 | virtual void HandleSyncRequest(SharedPtr<ServerSession> server_session) = 0; | 43 | virtual ResultCode HandleSyncRequest(SharedPtr<ServerSession> server_session) = 0; |
| 44 | 44 | ||
| 45 | /** | 45 | /** |
| 46 | * Signals that a client has just connected to this HLE handler and keeps the | 46 | * Signals that a client has just connected to this HLE handler and keeps the |
diff --git a/src/core/hle/kernel/server_session.cpp b/src/core/hle/kernel/server_session.cpp index 337896abf..68e5cc2b7 100644 --- a/src/core/hle/kernel/server_session.cpp +++ b/src/core/hle/kernel/server_session.cpp | |||
| @@ -60,12 +60,13 @@ ResultCode ServerSession::HandleSyncRequest(SharedPtr<Thread> thread) { | |||
| 60 | // similar. | 60 | // similar. |
| 61 | 61 | ||
| 62 | // If this ServerSession has an associated HLE handler, forward the request to it. | 62 | // If this ServerSession has an associated HLE handler, forward the request to it. |
| 63 | ResultCode result{RESULT_SUCCESS}; | ||
| 63 | if (hle_handler != nullptr) { | 64 | if (hle_handler != nullptr) { |
| 64 | // Attempt to translate the incoming request's command buffer. | 65 | // Attempt to translate the incoming request's command buffer. |
| 65 | ResultCode result = TranslateHLERequest(this); | 66 | ResultCode translate_result = TranslateHLERequest(this); |
| 66 | if (result.IsError()) | 67 | if (translate_result.IsError()) |
| 67 | return result; | 68 | return translate_result; |
| 68 | hle_handler->HandleSyncRequest(SharedPtr<ServerSession>(this)); | 69 | result = hle_handler->HandleSyncRequest(SharedPtr<ServerSession>(this)); |
| 69 | // TODO(Subv): Translate the response command buffer. | 70 | // TODO(Subv): Translate the response command buffer. |
| 70 | } else { | 71 | } else { |
| 71 | // Add the thread to the list of threads that have issued a sync request with this | 72 | // Add the thread to the list of threads that have issued a sync request with this |
| @@ -76,7 +77,7 @@ ResultCode ServerSession::HandleSyncRequest(SharedPtr<Thread> thread) { | |||
| 76 | // If this ServerSession does not have an HLE implementation, just wake up the threads waiting | 77 | // If this ServerSession does not have an HLE implementation, just wake up the threads waiting |
| 77 | // on it. | 78 | // on it. |
| 78 | WakeupAllWaitingThreads(); | 79 | WakeupAllWaitingThreads(); |
| 79 | return RESULT_SUCCESS; | 80 | return result; |
| 80 | } | 81 | } |
| 81 | 82 | ||
| 82 | ServerSession::SessionPair ServerSession::CreateSessionPair(const std::string& name, | 83 | ServerSession::SessionPair ServerSession::CreateSessionPair(const std::string& name, |