ams: revamp assertion system
This commit is contained in:
@@ -23,15 +23,38 @@ namespace ams::result {
|
||||
|
||||
namespace ams::result::impl {
|
||||
|
||||
NORETURN WEAK_SYMBOL void OnResultAssertion(Result result) {
|
||||
/* Assert that we should call fatal on result assertion. */
|
||||
/* If we shouldn't fatal, this will std::abort(); */
|
||||
/* If we should, we'll continue onwards. */
|
||||
AMS_ASSERT((ams::result::CallFatalOnResultAssertion));
|
||||
NORETURN WEAK_SYMBOL void OnResultAbort(const char *file, int line, const char *func, const char *expr, Result result) {
|
||||
/* Assert that we should call fatal on result assertion. */
|
||||
/* If we shouldn't fatal, this will abort(); */
|
||||
/* If we should, we'll continue onwards. */
|
||||
if (!ams::result::CallFatalOnResultAssertion) {
|
||||
::ams::diag::AbortImpl(file, line, func, expr, result.GetValue(), "Result Abort: %203d-%04d", result.GetModule(), result.GetDescription());
|
||||
}
|
||||
|
||||
/* TODO: ams::fatal:: */
|
||||
fatalThrow(result.GetValue());
|
||||
while (true) { /* ... */ }
|
||||
}
|
||||
/* TODO: ams::fatal:: */
|
||||
fatalThrow(result.GetValue());
|
||||
while (true) { /* ... */ }
|
||||
}
|
||||
|
||||
NORETURN WEAK_SYMBOL void OnResultAbort(Result result) {
|
||||
OnResultAbort("", 0, "", "", result);
|
||||
}
|
||||
|
||||
NORETURN WEAK_SYMBOL void OnResultAssertion(const char *file, int line, const char *func, const char *expr, Result result) {
|
||||
/* Assert that we should call fatal on result assertion. */
|
||||
/* If we shouldn't fatal, this will assert(); */
|
||||
/* If we should, we'll continue onwards. */
|
||||
if (!ams::result::CallFatalOnResultAssertion) {
|
||||
::ams::diag::AssertionFailureImpl(file, line, func, expr, result.GetValue(), "Result Assertion: %203d-%04d", result.GetModule(), result.GetDescription());
|
||||
}
|
||||
|
||||
/* TODO: ams::fatal:: */
|
||||
fatalThrow(result.GetValue());
|
||||
while (true) { /* ... */ }
|
||||
}
|
||||
|
||||
NORETURN WEAK_SYMBOL void OnResultAssertion(Result result) {
|
||||
OnResultAssertion("", 0, "", "", result);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user