diff options
| author | Ameer J <52414509+ameerj@users.noreply.github.com> | 2021-10-04 00:09:08 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-04 00:09:08 -0400 |
| commit | 01f79d638fbbca54280ab9b5840e5a483b7ceb69 (patch) | |
| tree | 6520b5f70f2d3132031610e39d6d7c50aa268838 /src/core/hle/kernel/svc.cpp | |
| parent | d418af157a03f64f4dac79f559f619b33ba02a65 (diff) | |
| parent | 5fbfc4c19eaca2ad88bf34ec33d068ffab6fe672 (diff) | |
Merge pull request #7091 from vonchenplus/fix_memroy_leak
core: Fix memory leak
Diffstat (limited to 'src/core/hle/kernel/svc.cpp')
| -rw-r--r-- | src/core/hle/kernel/svc.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index 62fb06c45..f98f24a60 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp @@ -320,17 +320,19 @@ static ResultCode SendSyncRequest(Core::System& system, Handle handle) { auto& kernel = system.Kernel(); - KScopedAutoObject session = - kernel.CurrentProcess()->GetHandleTable().GetObject<KClientSession>(handle); - R_UNLESS(session.IsNotNull(), ResultInvalidHandle); - LOG_TRACE(Kernel_SVC, "called handle=0x{:08X}({})", handle, session->GetName()); - auto thread = kernel.CurrentScheduler()->GetCurrentThread(); { KScopedSchedulerLock lock(kernel); thread->SetState(ThreadState::Waiting); thread->SetWaitReasonForDebugging(ThreadWaitReasonForDebugging::IPC); - session->SendSyncRequest(thread, system.Memory(), system.CoreTiming()); + + { + KScopedAutoObject session = + kernel.CurrentProcess()->GetHandleTable().GetObject<KClientSession>(handle); + R_UNLESS(session.IsNotNull(), ResultInvalidHandle); + LOG_TRACE(Kernel_SVC, "called handle=0x{:08X}({})", handle, session->GetName()); + session->SendSyncRequest(thread, system.Memory(), system.CoreTiming()); + } } KSynchronizationObject* dummy{}; |
