diff options
| author | 2021-06-06 17:54:06 -0700 | |
|---|---|---|
| committer | 2021-06-06 17:54:06 -0700 | |
| commit | ada4242c014d791379c02bf4222a39a9e881a692 (patch) | |
| tree | 6a9e153008d7b927cec278c0d481a2be04cb5736 | |
| parent | hle: kernel: k_server_session: Ensure service thread is valid before derefere... (diff) | |
| download | yuzu-ada4242c014d791379c02bf4222a39a9e881a692.tar.gz yuzu-ada4242c014d791379c02bf4222a39a9e881a692.tar.xz yuzu-ada4242c014d791379c02bf4222a39a9e881a692.zip | |
hle: kernel: k_server_session: Return service thread by strong pointer.
| -rw-r--r-- | src/core/hle/kernel/hle_ipc.h | 6 | ||||
| -rw-r--r-- | src/core/hle/kernel/k_server_session.cpp | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h index 159565203..2aaf93fca 100644 --- a/src/core/hle/kernel/hle_ipc.h +++ b/src/core/hle/kernel/hle_ipc.h | |||
| @@ -85,8 +85,8 @@ public: | |||
| 85 | */ | 85 | */ |
| 86 | void ClientDisconnected(KServerSession* session); | 86 | void ClientDisconnected(KServerSession* session); |
| 87 | 87 | ||
| 88 | std::weak_ptr<ServiceThread> GetServiceThread() const { | 88 | std::shared_ptr<ServiceThread> GetServiceThread() const { |
| 89 | return service_thread; | 89 | return service_thread.lock(); |
| 90 | } | 90 | } |
| 91 | 91 | ||
| 92 | protected: | 92 | protected: |
| @@ -152,7 +152,7 @@ public: | |||
| 152 | session_handler = std::move(handler); | 152 | session_handler = std::move(handler); |
| 153 | } | 153 | } |
| 154 | 154 | ||
| 155 | std::weak_ptr<ServiceThread> GetServiceThread() const { | 155 | std::shared_ptr<ServiceThread> GetServiceThread() const { |
| 156 | return session_handler->GetServiceThread(); | 156 | return session_handler->GetServiceThread(); |
| 157 | } | 157 | } |
| 158 | 158 | ||
diff --git a/src/core/hle/kernel/k_server_session.cpp b/src/core/hle/kernel/k_server_session.cpp index 96c8d7b0e..b231f8183 100644 --- a/src/core/hle/kernel/k_server_session.cpp +++ b/src/core/hle/kernel/k_server_session.cpp | |||
| @@ -119,7 +119,7 @@ ResultCode KServerSession::QueueSyncRequest(KThread* thread, Core::Memory::Memor | |||
| 119 | 119 | ||
| 120 | context->PopulateFromIncomingCommandBuffer(kernel.CurrentProcess()->GetHandleTable(), cmd_buf); | 120 | context->PopulateFromIncomingCommandBuffer(kernel.CurrentProcess()->GetHandleTable(), cmd_buf); |
| 121 | 121 | ||
| 122 | if (auto strong_ptr = manager->GetServiceThread().lock(); strong_ptr) { | 122 | if (auto strong_ptr = manager->GetServiceThread(); strong_ptr) { |
| 123 | strong_ptr->QueueSyncRequest(*parent, std::move(context)); | 123 | strong_ptr->QueueSyncRequest(*parent, std::move(context)); |
| 124 | return ResultSuccess; | 124 | return ResultSuccess; |
| 125 | } else { | 125 | } else { |