From 7713daa86adf7980fd73cae40203ab6deb6be8b8 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sun, 20 Aug 2023 11:47:06 +0200 Subject: [PATCH] compositor: log thrown runtime exceptions --- src/Compositor.cpp | 12 ++++++------ src/helpers/MiscFunctions.cpp | 5 +++++ src/helpers/MiscFunctions.hpp | 3 ++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/Compositor.cpp b/src/Compositor.cpp index 05b4124d..30357a7d 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -108,20 +108,20 @@ void CCompositor::initServer() { if (!m_sWLRBackend) { Debug::log(CRIT, "m_sWLRBackend was NULL!"); - throw std::runtime_error("wlr_backend_autocreate() failed!"); + throwError("wlr_backend_autocreate() failed!"); } m_iDRMFD = wlr_backend_get_drm_fd(m_sWLRBackend); if (m_iDRMFD < 0) { Debug::log(CRIT, "Couldn't query the DRM FD!"); - throw std::runtime_error("wlr_backend_get_drm_fd() failed!"); + throwError("wlr_backend_get_drm_fd() failed!"); } m_sWLRRenderer = wlr_gles2_renderer_create_with_drm_fd(m_iDRMFD); if (!m_sWLRRenderer) { Debug::log(CRIT, "m_sWLRRenderer was NULL!"); - throw std::runtime_error("wlr_gles2_renderer_create_with_drm_fd() failed!"); + throwError("wlr_gles2_renderer_create_with_drm_fd() failed!"); } wlr_renderer_init_wl_shm(m_sWLRRenderer, m_sWLDisplay); @@ -137,14 +137,14 @@ void CCompositor::initServer() { if (!m_sWLRAllocator) { Debug::log(CRIT, "m_sWLRAllocator was NULL!"); - throw std::runtime_error("wlr_allocator_autocreate() failed!"); + throwError("wlr_allocator_autocreate() failed!"); } m_sWLREGL = wlr_gles2_renderer_get_egl(m_sWLRRenderer); if (!m_sWLREGL) { Debug::log(CRIT, "m_sWLREGL was NULL!"); - throw std::runtime_error("wlr_gles2_renderer_get_egl() failed!"); + throwError("wlr_gles2_renderer_get_egl() failed!"); } m_sWLRCompositor = wlr_compositor_create(m_sWLDisplay, 6, m_sWLRRenderer); @@ -243,7 +243,7 @@ void CCompositor::initServer() { if (!m_sWLRHeadlessBackend) { Debug::log(CRIT, "Couldn't create the headless backend"); - throw std::runtime_error("wlr_headless_backend_create() failed!"); + throwError("wlr_headless_backend_create() failed!"); } wlr_single_pixel_buffer_manager_v1_create(m_sWLDisplay); diff --git a/src/helpers/MiscFunctions.cpp b/src/helpers/MiscFunctions.cpp index acda2abd..7bf254ea 100644 --- a/src/helpers/MiscFunctions.cpp +++ b/src/helpers/MiscFunctions.cpp @@ -714,3 +714,8 @@ std::vector getBacktrace() { return callstack; } + +void throwError(const std::string& err) { + Debug::log(CRIT, "Critical error thrown: %s", err.c_str()); + throw std::runtime_error(err); +} diff --git a/src/helpers/MiscFunctions.hpp b/src/helpers/MiscFunctions.hpp index c9e1f1b3..88598390 100644 --- a/src/helpers/MiscFunctions.hpp +++ b/src/helpers/MiscFunctions.hpp @@ -29,4 +29,5 @@ float getPlusMinusKeywordResult(std::string in, float void matrixProjection(float mat[9], int w, int h, wl_output_transform tr); double normalizeAngleRad(double ang); std::string replaceInString(std::string subject, const std::string& search, const std::string& replace); -std::vector getBacktrace(); \ No newline at end of file +std::vector getBacktrace(); +void throwError(const std::string& err); \ No newline at end of file