From 0f19fda556644b3ba86c86acb95448a643352b64 Mon Sep 17 00:00:00 2001 From: scawful Date: Thu, 30 May 2024 00:31:02 -0400 Subject: [PATCH] handle errors in main entry point --- src/app/core/controller.cc | 5 +++-- src/app/core/controller.h | 2 +- src/app/yaze.cc | 5 ++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/app/core/controller.cc b/src/app/core/controller.cc index b98ec66f..ffe686ed 100644 --- a/src/app/core/controller.cc +++ b/src/app/core/controller.cc @@ -244,11 +244,12 @@ void Controller::OnInput() { HandleMouseMovement(wheel); } -void Controller::OnLoad() { +absl::Status Controller::OnLoad() { if (master_editor_.quit()) { active_ = false; } - PRINT_IF_ERROR(master_editor_.Update()); + RETURN_IF_ERROR(master_editor_.Update()); + return absl::OkStatus(); } void Controller::DoRender() const { diff --git a/src/app/core/controller.h b/src/app/core/controller.h index c3c6e70f..29a53594 100644 --- a/src/app/core/controller.h +++ b/src/app/core/controller.h @@ -33,7 +33,7 @@ class Controller : public ExperimentFlags { bool IsActive() const { return active_; } absl::Status OnEntry(std::string filename = ""); void OnInput(); - void OnLoad(); + absl::Status OnLoad(); void DoRender() const; void OnExit(); diff --git a/src/app/yaze.cc b/src/app/yaze.cc index 9fd689ba..6017227e 100644 --- a/src/app/yaze.cc +++ b/src/app/yaze.cc @@ -41,7 +41,10 @@ int main(int argc, char** argv) { try { while (controller.IsActive()) { controller.OnInput(); - controller.OnLoad(); + if (auto status = controller.OnLoad(); !status.ok()) { + std::cerr << status.message() << std::endl; + break; + } controller.DoRender(); } controller.OnExit();