Bladeren bron

Merge pull request #7278 from Morph1984/svc-num-handles

svc: Correct WaitSynchronization num_handles param type
Mai M 4 jaren geleden
bovenliggende
commit
863e2e2b4f
2 gewijzigde bestanden met toevoegingen van 4 en 4 verwijderingen
  1. 2 2
      src/core/hle/kernel/svc.cpp
  2. 2 2
      src/core/hle/kernel/svc_wrap.h

+ 2 - 2
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();
         }

+ 2 - 2
src/core/hle/kernel/svc_wrap.h

@@ -248,10 +248,10 @@ void SvcWrap64(Core::System& system) {
 }
 
 // Used by WaitSynchronization
-template <ResultCode func(Core::System&, s32*, u64, u64, s64)>
+template <ResultCode func(Core::System&, s32*, u64, s32, s64)>
 void SvcWrap64(Core::System& system) {
     s32 param_1 = 0;
-    const u32 retval = func(system, &param_1, Param(system, 1), static_cast<u32>(Param(system, 2)),
+    const u32 retval = func(system, &param_1, Param(system, 1), static_cast<s32>(Param(system, 2)),
                             static_cast<s64>(Param(system, 3)))
                            .raw;