diff options
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/kernel/k_session.cpp | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/core/hle/kernel/k_session.cpp b/src/core/hle/kernel/k_session.cpp index 5e629d446..7b0bc177d 100644 --- a/src/core/hle/kernel/k_session.cpp +++ b/src/core/hle/kernel/k_session.cpp @@ -49,24 +49,30 @@ void KSession::Initialize(KClientPort* port_, const std::string& name_) { } void KSession::Finalize() { - if (port != nullptr) { - port->OnSessionFinalized(); - port->Close(); + if (port == nullptr) { + return; } + + port->OnSessionFinalized(); + port->Close(); } void KSession::OnServerClosed() { - if (GetState() == State::Normal) { - SetState(State::ServerClosed); - client.OnServerClosed(); + if (GetState() != State::Normal) { + return; } + + SetState(State::ServerClosed); + client.OnServerClosed(); } void KSession::OnClientClosed() { - if (GetState() == State::Normal) { - SetState(State::ClientClosed); - server.OnClientClosed(); + if (GetState() != State::Normal) { + return; } + + SetState(State::ClientClosed); + server.OnClientClosed(); } void KSession::PostDestroy(uintptr_t arg) { |