From 413b49c2b6619a7ce16322c7f94079205031cda4 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Mon, 17 May 2021 14:00:48 -0400 Subject: [PATCH] gdb: move cmd_list_element::prefixname to cli/cli-decode.c I don't think this method really benefits from being implemented in the header file, especially because it's recursive, it can't be inlined. Move it to the source file, so it's no re-compiled by every CU including cli/cli-decode.h. I also noticed this method could be const, make it so. gdb/ChangeLog: * cli/cli-decode.h (prefixname): Make const, move implementation to cli/cli-decode.c. * cli/cli-decode.c (cmd_list_element::prefixname): New. Change-Id: I1597cace98d9a4ba71f51f1f495e73cc07b5dcf3 --- gdb/ChangeLog | 6 ++++++ gdb/cli/cli-decode.c | 17 +++++++++++++++++ gdb/cli/cli-decode.h | 16 ++-------------- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 81e9dd5a29..c9f5181a7e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2021-05-17 Simon Marchi + + * cli/cli-decode.h (prefixname): Make const, move implementation + to cli/cli-decode.c. + * cli/cli-decode.c (cmd_list_element::prefixname): New. + 2021-05-16 Weimin Pan * ctfread.c (new_symbol): Set function address. diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c index 32edb526c8..a3b153f06e 100644 --- a/gdb/cli/cli-decode.c +++ b/gdb/cli/cli-decode.c @@ -160,6 +160,23 @@ set_cmd_completer_handle_brkchars (struct cmd_list_element *cmd, cmd->completer_handle_brkchars = func; } +std::string +cmd_list_element::prefixname () const +{ + if (this->prefixlist == nullptr) + /* Not a prefix command. */ + return ""; + + std::string prefixname; + if (this->prefix != nullptr) + prefixname = this->prefix->prefixname (); + + prefixname += this->name; + prefixname += " "; + + return prefixname; +} + /* Add element named NAME. Space for NAME and DOC must be allocated by the caller. CLASS is the top level category into which commands are broken down diff --git a/gdb/cli/cli-decode.h b/gdb/cli/cli-decode.h index da6013a6cc..e6d6f32cbf 100644 --- a/gdb/cli/cli-decode.h +++ b/gdb/cli/cli-decode.h @@ -76,20 +76,8 @@ struct cmd_list_element space. It is used before the word "command" in describing the commands reached through this prefix. - For non-prefix commands, an empty string is returned. */ - std::string prefixname () - { - if (prefixlist == nullptr) - /* Not a prefix command. */ - return ""; - - std::string prefixname; - if (prefix != nullptr) - prefixname = prefix->prefixname (); - prefixname += name; - prefixname += " "; - return prefixname; - } + For non-prefix commands, return an empty string. */ + std::string prefixname () const; /* Points to next command in this list. */ struct cmd_list_element *next = nullptr; -- 2.34.1