From b871388a31af0194d785d9cf26ce963f169a067c Mon Sep 17 00:00:00 2001 From: Morph <39850852+Morph1984@users.noreply.github.com> Date: Tue, 2 Nov 2021 22:04:20 -0400 Subject: [PATCH] svc: Correct WaitSynchronization num_handles param type num_handles is a s32 --- src/core/hle/kernel/svc.cpp | 4 ++-- src/core/hle/kernel/svc_wrap.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp index c43135856..f328ce111 100644 --- a/src/core/hle/kernel/svc.cpp +++ b/src/core/hle/kernel/svc.cpp @@ -409,7 +409,7 @@ static ResultCode GetProcessId32(Core::System& system, u32* out_process_id_low, /// Wait for the given handles to synchronize, timeout after the specified nanoseconds static ResultCode WaitSynchronization(Core::System& system, s32* index, VAddr handles_address, - u64 num_handles, s64 nano_seconds) { + s32 num_handles, s64 nano_seconds) { LOG_TRACE(Kernel_SVC, "called handles_address=0x{:X}, num_handles={}, nano_seconds={}", handles_address, num_handles, nano_seconds); @@ -434,7 +434,7 @@ static ResultCode WaitSynchronization(Core::System& system, s32* index, VAddr ha // Ensure handles are closed when we're done. SCOPE_EXIT({ - for (u64 i = 0; i < num_handles; ++i) { + for (s32 i = 0; i < num_handles; ++i) { kernel.UnregisterInUseObject(objs[i]); objs[i]->Close(); } diff --git a/src/core/hle/kernel/svc_wrap.h b/src/core/hle/kernel/svc_wrap.h index 913b16494..6e62e656f 100644 --- a/src/core/hle/kernel/svc_wrap.h +++ b/src/core/hle/kernel/svc_wrap.h @@ -248,10 +248,10 @@ void SvcWrap64(Core::System& system) { } // Used by WaitSynchronization -template +template void SvcWrap64(Core::System& system) { s32 param_1 = 0; - const u32 retval = func(system, ¶m_1, Param(system, 1), static_cast(Param(system, 2)), + const u32 retval = func(system, ¶m_1, Param(system, 1), static_cast(Param(system, 2)), static_cast(Param(system, 3))) .raw;