summaryrefslogtreecommitdiff
path: root/Userland/Applications/HexEditor
diff options
context:
space:
mode:
authorLenny Maiorani <lenny@colorado.edu>2021-05-19 09:32:07 -0600
committerLinus Groh <mail@linusgroh.de>2021-05-21 10:07:06 +0100
commit800ea8ea969835297dc7e7da345a45b9dc5e751a (patch)
tree5918276b3f75e73d7f4559f97587a23f652612a5 /Userland/Applications/HexEditor
parent17ff895e1cbc685b99b22856aed16852b564c1f4 (diff)
downloadserenity-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.cpp16
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;
};