mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 15:57:45 +00:00
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`.
This commit is contained in:
parent
17ff895e1c
commit
800ea8ea96
38 changed files with 192 additions and 184 deletions
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue