From 857cdee0d0e88a2681126ce564b61ad337a7f898 Mon Sep 17 00:00:00 2001 From: AnotherTest Date: Wed, 24 Feb 2021 02:05:43 +0330 Subject: [PATCH] AK: Make dbgln_if() avoid evaluating the arguments when disabled Naturally, this makes the `enabled` flag on dbgln() obsolete. --- AK/Format.h | 14 ++++++++------ Userland/Libraries/LibCpp/Parser.cpp | 2 +- Userland/Services/WindowServer/WindowManager.cpp | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/AK/Format.h b/AK/Format.h index c5b6ce795e..c7b5400e30 100644 --- a/AK/Format.h +++ b/AK/Format.h @@ -396,15 +396,13 @@ inline void warnln() { outln(stderr); } void vdbgln(StringView fmtstr, TypeErasedFormatParams); -template +template void dbgln(CheckedFormatString&& fmtstr, const Parameters&... parameters) { - if constexpr (enabled) - vdbgln(fmtstr.view(), VariadicFormatParams { parameters... }); + vdbgln(fmtstr.view(), VariadicFormatParams { parameters... }); } -template -void dbgln() { dbgln(""); } +inline void dbgln() { dbgln(""); } void set_debug_enabled(bool); @@ -488,4 +486,8 @@ using AK::CheckedFormatString; using AK::FormatIfSupported; using AK::FormatString; -#define dbgln_if(flag, fmt, ...) dbgln(fmt, ##__VA_ARGS__) +#define dbgln_if(flag, fmt, ...) \ + do { \ + if constexpr (flag) \ + dbgln(fmt, ##__VA_ARGS__); \ + } while (0) diff --git a/Userland/Libraries/LibCpp/Parser.cpp b/Userland/Libraries/LibCpp/Parser.cpp index f3081ac0ae..1a592a4ff3 100644 --- a/Userland/Libraries/LibCpp/Parser.cpp +++ b/Userland/Libraries/LibCpp/Parser.cpp @@ -714,7 +714,7 @@ void Parser::error(StringView message) m_tokens[m_state.token_index].m_start.column); } m_errors.append(formatted_message); - dbgln("{}", formatted_message); + dbgln_if(CPP_DEBUG, "{}", formatted_message); } bool Parser::match_expression() diff --git a/Userland/Services/WindowServer/WindowManager.cpp b/Userland/Services/WindowServer/WindowManager.cpp index d3901a3131..a4a84fe82c 100644 --- a/Userland/Services/WindowServer/WindowManager.cpp +++ b/Userland/Services/WindowServer/WindowManager.cpp @@ -589,7 +589,7 @@ bool WindowManager::process_ongoing_window_resize(const MouseEvent& event, Windo auto max_rect = maximized_window_rect(*m_resize_window); if (event.y() > max_rect.bottom()) { - dbgln("Should Maximize vertically"); + dbgln_if(RESIZE_DEBUG, "Should Maximize vertically"); m_resize_window->set_vertically_maximized(); m_resize_window = nullptr; m_resizing_mouse_button = MouseButton::None;