diff options
author | Lenny Maiorani <lenny@colorado.edu> | 2021-05-19 09:32:07 -0600 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2021-05-21 10:07:06 +0100 |
commit | 800ea8ea969835297dc7e7da345a45b9dc5e751a (patch) | |
tree | 5918276b3f75e73d7f4559f97587a23f652612a5 /Userland/Applications/HexEditor | |
parent | 17ff895e1cbc685b99b22856aed16852b564c1f4 (diff) | |
download | serenity-800ea8ea969835297dc7e7da345a45b9dc5e751a.zip |
Userland: static vs non-static constexpr variables
Problem:
- `static` variables consume memory and sometimes are less
optimizable.
- `static const` variables can be `constexpr`, usually.
- `static` function-local variables require an initialization check
every time the function is run.
Solution:
- If a global `static` variable is only used in a single function then
move it into the function and make it non-`static` and `constexpr`.
- Make all global `static` variables `constexpr` instead of `const`.
- Change function-local `static const[expr]` variables to be just
`constexpr`.
Diffstat (limited to 'Userland/Applications/HexEditor')
-rw-r--r-- | Userland/Applications/HexEditor/FindDialog.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/Userland/Applications/HexEditor/FindDialog.cpp b/Userland/Applications/HexEditor/FindDialog.cpp index e5ec83f429..668752fb92 100644 --- a/Userland/Applications/HexEditor/FindDialog.cpp +++ b/Userland/Applications/HexEditor/FindDialog.cpp @@ -5,9 +5,9 @@ */ #include "FindDialog.h" +#include <AK/Array.h> #include <AK/Hex.h> #include <AK/String.h> -#include <AK/Vector.h> #include <LibGUI/BoxLayout.h> #include <LibGUI/Button.h> #include <LibGUI/Label.h> @@ -19,17 +19,12 @@ #include <LibGfx/FontDatabase.h> struct Option { - String title; + StringView title; OptionId opt; bool enabled; bool default_action; }; -static const Vector<Option> options = { - { "ACII String", OPTION_ASCII_STRING, true, true }, - { "Hex value", OPTION_HEX_VALUE, true, false }, -}; - int FindDialog::show(GUI::Window* parent_window, String& out_text, ByteBuffer& out_buffer) { auto dialog = FindDialog::construct(); @@ -88,6 +83,11 @@ Result<ByteBuffer, String> FindDialog::process_input(String text_value, OptionId FindDialog::FindDialog() : Dialog(nullptr) { + constexpr Array options = { + Option { "ACII String", OPTION_ASCII_STRING, true, true }, + Option { "Hex value", OPTION_HEX_VALUE, true, false }, + }; + resize(280, 180 + ((static_cast<int>(options.size()) - 3) * 16)); center_on_screen(); set_resizable(false); @@ -113,7 +113,7 @@ FindDialog::FindDialog() radio.set_enabled(action.enabled); radio.set_text(action.title); - radio.on_checked = [this, i](auto) { + radio.on_checked = [&](auto) { m_selected_option = options[i].opt; }; |