Browse Source
Merge pull request #6395 from lioncash/result-move
common_funcs: Move R_ macros to result.h
pull/15/merge
Morph
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
25 additions and
25 deletions
-
src/common/common_funcs.h
-
src/core/hle/result.h
|
|
|
@ -97,17 +97,6 @@ __declspec(dllimport) void __stdcall DebugBreak(void); |
|
|
|
return static_cast<T>(key) == 0; \ |
|
|
|
} |
|
|
|
|
|
|
|
/// Evaluates a boolean expression, and returns a result unless that expression is true. |
|
|
|
#define R_UNLESS(expr, res) \ |
|
|
|
{ \ |
|
|
|
if (!(expr)) { \ |
|
|
|
if (res.IsError()) { \ |
|
|
|
LOG_ERROR(Kernel, "Failed with result: {}", res.raw); \ |
|
|
|
} \ |
|
|
|
return res; \ |
|
|
|
} \ |
|
|
|
} |
|
|
|
|
|
|
|
#define YUZU_NON_COPYABLE(cls) \ |
|
|
|
cls(const cls&) = delete; \ |
|
|
|
cls& operator=(const cls&) = delete |
|
|
|
@ -116,20 +105,6 @@ __declspec(dllimport) void __stdcall DebugBreak(void); |
|
|
|
cls(cls&&) = delete; \ |
|
|
|
cls& operator=(cls&&) = delete |
|
|
|
|
|
|
|
#define R_SUCCEEDED(res) (res.IsSuccess()) |
|
|
|
|
|
|
|
/// Evaluates an expression that returns a result, and returns the result if it would fail. |
|
|
|
#define R_TRY(res_expr) \ |
|
|
|
{ \ |
|
|
|
const auto _tmp_r_try_rc = (res_expr); \ |
|
|
|
if (_tmp_r_try_rc.IsError()) { \ |
|
|
|
return _tmp_r_try_rc; \ |
|
|
|
} \ |
|
|
|
} |
|
|
|
|
|
|
|
/// Evaluates a boolean expression, and succeeds if that expression is true. |
|
|
|
#define R_SUCCEED_IF(expr) R_UNLESS(!(expr), RESULT_SUCCESS) |
|
|
|
|
|
|
|
namespace Common { |
|
|
|
|
|
|
|
[[nodiscard]] constexpr u32 MakeMagic(char a, char b, char c, char d) { |
|
|
|
|
|
|
|
@ -358,3 +358,28 @@ ResultVal<std::remove_reference_t<Arg>> MakeResult(Arg&& arg) { |
|
|
|
return CONCAT2(check_result_L, __LINE__); \ |
|
|
|
} \ |
|
|
|
} while (false) |
|
|
|
|
|
|
|
#define R_SUCCEEDED(res) (res.IsSuccess()) |
|
|
|
|
|
|
|
/// Evaluates a boolean expression, and succeeds if that expression is true. |
|
|
|
#define R_SUCCEED_IF(expr) R_UNLESS(!(expr), RESULT_SUCCESS) |
|
|
|
|
|
|
|
/// Evaluates a boolean expression, and returns a result unless that expression is true. |
|
|
|
#define R_UNLESS(expr, res) \ |
|
|
|
{ \ |
|
|
|
if (!(expr)) { \ |
|
|
|
if (res.IsError()) { \ |
|
|
|
LOG_ERROR(Kernel, "Failed with result: {}", res.raw); \ |
|
|
|
} \ |
|
|
|
return res; \ |
|
|
|
} \ |
|
|
|
} |
|
|
|
|
|
|
|
/// Evaluates an expression that returns a result, and returns the result if it would fail. |
|
|
|
#define R_TRY(res_expr) \ |
|
|
|
{ \ |
|
|
|
const auto _tmp_r_try_rc = (res_expr); \ |
|
|
|
if (_tmp_r_try_rc.IsError()) { \ |
|
|
|
return _tmp_r_try_rc; \ |
|
|
|
} \ |
|
|
|
} |