Browse Source

k_address_arbiter: Unfold R_UNLESS macros

Allows for more descriptive error messages and also doesn't hide
control-path exit returns from the reader.
Lioncash 5 years ago
parent
commit
40ab2b9348
1 changed files with 8 additions and 5 deletions
  1. 8 5
      src/core/hle/kernel/k_address_arbiter.cpp

+ 8 - 5
src/core/hle/kernel/k_address_arbiter.cpp

@@ -118,9 +118,10 @@ ResultCode KAddressArbiter::SignalAndIncrementIfEqual(VAddr addr, s32 value, s32
 
 
         // Check the userspace value.
         // Check the userspace value.
         s32 user_value{};
         s32 user_value{};
-        R_UNLESS(UpdateIfEqual(system, &user_value, addr, value, value + 1),
-                 Svc::ResultInvalidCurrentMemory);
-
+        if (!UpdateIfEqual(system, &user_value, addr, value, value + 1)) {
+            LOG_ERROR(Kernel, "Invalid current memory!");
+            return Svc::ResultInvalidCurrentMemory;
+        }
         if (user_value != value) {
         if (user_value != value) {
             return Svc::ResultInvalidState;
             return Svc::ResultInvalidState;
         }
         }
@@ -186,8 +187,10 @@ ResultCode KAddressArbiter::SignalAndModifyByWaitingCountIfEqual(VAddr addr, s32
             succeeded = ReadFromUser(system, &user_value, addr);
             succeeded = ReadFromUser(system, &user_value, addr);
         }
         }
 
 
-        R_UNLESS(succeeded, Svc::ResultInvalidCurrentMemory);
-
+        if (!succeeded) {
+            LOG_ERROR(Kernel, "Invalid current memory!");
+            return Svc::ResultInvalidCurrentMemory;
+        }
         if (user_value != value) {
         if (user_value != value) {
             return Svc::ResultInvalidState;
             return Svc::ResultInvalidState;
         }
         }