diff options
author | Tom de Vries <tdevries@suse.de> | 2023-11-28 16:31:07 +0100 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2023-11-28 16:31:07 +0100 |
commit | 1f6ce803887ac8da6d4b5903fa270dfa63c63bbf (patch) | |
tree | 1c418e75995a9c8fd640928dd6f2788bfea0a623 /gdb/tui | |
parent | 9d4db627b2a6a78f7f7959668da94e79e17a7e34 (diff) | |
download | gdb-1f6ce803887ac8da6d4b5903fa270dfa63c63bbf.zip gdb-1f6ce803887ac8da6d4b5903fa270dfa63c63bbf.tar.gz gdb-1f6ce803887ac8da6d4b5903fa270dfa63c63bbf.tar.bz2 |
[gdb/tui] Use const std::string for string literals in tui-stack.c
I noticed in gdb/tui/tui-stack.c a source-level micro-optimization where
strlen with a string literal argument:
...
strlen ("bla")
...
is replaced with sizeof:
...
sizeof ("bla") - 1
...
The benefit of this is that the optimization is also done at O0, but the
drawback is that it makes the expression harder to read.
Use const std::string to encapsulate the string literals, and use
std::string::size () instead.
I tried making the string names (PROC_PREFIX, LINE_PREFIX, PC_PREFIX and
SINGLE_KEY) lower-case, but that clashed with a pre-existing pc_prefix, so
I've left them upper-case.
Tested on x86_64-linux.
Tested-By: Alexandra Petlanova Hajkova <ahajkova@redhat.com>
Diffstat (limited to 'gdb/tui')
-rw-r--r-- | gdb/tui/tui-stack.c | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c index 76b8f06..723d626 100644 --- a/gdb/tui/tui-stack.c +++ b/gdb/tui/tui-stack.c @@ -40,12 +40,12 @@ #include "gdb_curses.h" -#define PROC_PREFIX "In: " -#define LINE_PREFIX "L" -#define PC_PREFIX "PC: " +static const std::string PROC_PREFIX = "In: "; +static const std::string LINE_PREFIX = "L"; +static const std::string PC_PREFIX = "PC: "; /* Strings to display in the TUI status line. */ -#define SINGLE_KEY "(SingleKey)" +static const std::string SINGLE_KEY = "(SingleKey)"; /* Minimum/Maximum length of some fields displayed in the TUI status line. */ @@ -107,16 +107,15 @@ tui_locator_window::make_status_line () const int pc_width = pc_out.size (); /* First determine the amount of proc name width we have available. - The +1 are for a space separator between fields. - The -1 are to take into account the \0 counted by sizeof. */ + The +1 are for a space separator between fields. */ proc_width = (status_size - (target_width + 1) - (pid_width + 1) - - (sizeof (PROC_PREFIX) - 1 + 1) - - (sizeof (LINE_PREFIX) - 1 + line_width + 1) - - (sizeof (PC_PREFIX) - 1 + pc_width + 1) + - (PROC_PREFIX.size () + 1) + - (LINE_PREFIX.size () + line_width + 1) + - (PC_PREFIX.size () + pc_width + 1) - (tui_current_key_mode == TUI_SINGLE_KEY_MODE - ? (sizeof (SINGLE_KEY) - 1 + 1) + ? (SINGLE_KEY.size () + 1) : 0)); /* If there is no room to print the function name, try by removing @@ -131,11 +130,11 @@ tui_locator_window::make_status_line () const pid_width = 0; if (proc_width <= MIN_PROC_WIDTH) { - proc_width += pc_width + sizeof (PC_PREFIX) - 1 + 1; + proc_width += pc_width + PC_PREFIX.size () + 1; pc_width = 0; if (proc_width < 0) { - proc_width += line_width + sizeof (LINE_PREFIX) - 1 + 1; + proc_width += line_width + LINE_PREFIX.size () + 1; line_width = 0; if (proc_width < 0) proc_width = 0; @@ -156,7 +155,7 @@ tui_locator_window::make_status_line () const /* Show whether we are in SingleKey mode. */ if (tui_current_key_mode == TUI_SINGLE_KEY_MODE) { - string.puts (SINGLE_KEY); + string.puts (SINGLE_KEY.c_str ()); string.puts (" "); } @@ -165,19 +164,19 @@ tui_locator_window::make_status_line () const { const std::string &proc_name = tui_location.proc_name (); if (proc_name.size () > proc_width) - string.printf ("%s%*.*s* ", PROC_PREFIX, + string.printf ("%s%*.*s* ", PROC_PREFIX.c_str (), 1 - proc_width, proc_width - 1, proc_name.c_str ()); else - string.printf ("%s%*.*s ", PROC_PREFIX, + string.printf ("%s%*.*s ", PROC_PREFIX.c_str (), -proc_width, proc_width, proc_name.c_str ()); } if (line_width > 0) - string.printf ("%s%*.*s ", LINE_PREFIX, + string.printf ("%s%*.*s ", LINE_PREFIX.c_str (), -line_width, line_width, line_buf); if (pc_width > 0) { - string.puts (PC_PREFIX); + string.puts (PC_PREFIX.c_str ()); string.puts (pc_buf); } |