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
This commit is contained in:
Simon Marchi 2021-05-17 14:00:48 -04:00
parent e683cb4120
commit 413b49c2b6
3 changed files with 25 additions and 14 deletions

View File

@ -1,3 +1,9 @@
2021-05-17 Simon Marchi <simon.marchi@polymtl.ca>
* 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 <weimin.pan@oracle.com>
* ctfread.c (new_symbol): Set function address.

View File

@ -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

View File

@ -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;