Results: Implement namespaced, type-safe results.
Because I was working on multiple things at once, this commit also:
- Adds wrappers for/linker flags to wrap CXX exceptions to make them
abort. This saves ~0x8000 of memory in every system module.
- Broadly replaces lines of the pattern if (cond) { return ResultX; }
with R_UNLESS(!cond, ResultX());.
- Reworks the R_TRY_CATCH macros (and the result macros in general).
This commit is contained in:
@@ -30,7 +30,7 @@ namespace sts::creport {
|
||||
private:
|
||||
Handle debug_handle = INVALID_HANDLE;
|
||||
bool has_extra_info = true;
|
||||
Result result = ResultCreportIncompleteReport;
|
||||
Result result = ResultIncompleteReport();
|
||||
|
||||
/* Attach process info. */
|
||||
svc::DebugInfoAttachProcess process_info = {};
|
||||
@@ -55,7 +55,7 @@ namespace sts::creport {
|
||||
}
|
||||
|
||||
bool IsComplete() const {
|
||||
return this->result != ResultCreportIncompleteReport;
|
||||
return !ResultIncompleteReport::Includes(this->result);
|
||||
}
|
||||
|
||||
bool IsOpen() const {
|
||||
|
||||
Reference in New Issue
Block a user