diff options
Diffstat (limited to 'src/core/hle/result.h')
| -rw-r--r-- | src/core/hle/result.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/core/hle/result.h b/src/core/hle/result.h index d67e68bae..ef4b2d417 100644 --- a/src/core/hle/result.h +++ b/src/core/hle/result.h | |||
| @@ -135,6 +135,14 @@ union Result { | |||
| 135 | [[nodiscard]] constexpr bool IsFailure() const { | 135 | [[nodiscard]] constexpr bool IsFailure() const { |
| 136 | return !IsSuccess(); | 136 | return !IsSuccess(); |
| 137 | } | 137 | } |
| 138 | |||
| 139 | [[nodiscard]] constexpr u32 GetInnerValue() const { | ||
| 140 | return static_cast<u32>(module.Value()) | (description << module.bits); | ||
| 141 | } | ||
| 142 | |||
| 143 | [[nodiscard]] constexpr bool Includes(Result result) const { | ||
| 144 | return GetInnerValue() == result.GetInnerValue(); | ||
| 145 | } | ||
| 138 | }; | 146 | }; |
| 139 | static_assert(std::is_trivial_v<Result>); | 147 | static_assert(std::is_trivial_v<Result>); |
| 140 | 148 | ||
| @@ -462,9 +470,6 @@ constexpr inline Result __TmpCurrentResultReference = ResultSuccess; | |||
| 462 | #define R_UNLESS(expr, res) \ | 470 | #define R_UNLESS(expr, res) \ |
| 463 | { \ | 471 | { \ |
| 464 | if (!(expr)) { \ | 472 | if (!(expr)) { \ |
| 465 | if (res.IsError()) { \ | ||
| 466 | LOG_ERROR(Kernel, "Failed with result: {}", res.raw); \ | ||
| 467 | } \ | ||
| 468 | R_THROW(res); \ | 473 | R_THROW(res); \ |
| 469 | } \ | 474 | } \ |
| 470 | } | 475 | } |