gdb: add context getter/setter to cmd_list_element

Straightforward replacement of get_cmd_context / set_cmd_context with
cmd_list_element methods.

gdb/ChangeLog:

	* cli/cli-decode.h (struct cmd_list_element) <set_context,
	context>: New.
	<context>: Rename to...
	<m_context>: ... this.
	* cli/cli-decode.c (set_cmd_context, get_cmd_context): Remove.
	* command.h (set_cmd_context, get_cmd_context): Remove, use
	cmd_list_element::set_context and cmd_list_element::context
	everywhere instead.

Change-Id: I5016b0079014e3f17d1aa449ada7954473bf2b5d
This commit is contained in:
Simon Marchi 2021-06-25 21:35:40 -04:00
parent ac2d77c6a1
commit 0f8e203412
17 changed files with 69 additions and 62 deletions

View file

@ -103,7 +103,7 @@ static void
cmdpy_function (struct cmd_list_element *command,
const char *args, int from_tty)
{
cmdpy_object *obj = (cmdpy_object *) get_cmd_context (command);
cmdpy_object *obj = (cmdpy_object *) command->context ();
gdbpy_enter enter_py (get_current_arch (), current_language);
@ -172,7 +172,7 @@ static gdbpy_ref<>
cmdpy_completer_helper (struct cmd_list_element *command,
const char *text, const char *word)
{
cmdpy_object *obj = (cmdpy_object *) get_cmd_context (command);
cmdpy_object *obj = (cmdpy_object *) command->context ();
if (obj == NULL)
error (_("Invalid invocation of Python command object."));
@ -532,7 +532,7 @@ cmdpy_init (PyObject *self, PyObject *args, PyObject *kw)
cmd->name_allocated = 1;
obj->command = cmd;
set_cmd_context (cmd, self_ref.release ());
cmd->set_context (self_ref.release ());
set_cmd_completer (cmd, ((completetype == -1) ? cmdpy_completer
: completers[completetype].completer));
if (completetype == -1)

View file

@ -376,7 +376,7 @@ static void
get_set_value (const char *args, int from_tty,
struct cmd_list_element *c)
{
PyObject *obj = (PyObject *) get_cmd_context (c);
PyObject *obj = (PyObject *) c->context ();
gdb::unique_xmalloc_ptr<char> set_doc_string;
gdbpy_enter enter_py (get_current_arch (), current_language);
@ -411,7 +411,7 @@ get_show_value (struct ui_file *file, int from_tty,
struct cmd_list_element *c,
const char *value)
{
PyObject *obj = (PyObject *) get_cmd_context (c);
PyObject *obj = (PyObject *) c->context ();
gdb::unique_xmalloc_ptr<char> show_doc_string;
gdbpy_enter enter_py (get_current_arch (), current_language);
@ -569,8 +569,8 @@ add_setshow_generic (int parmclass, enum command_class cmdclass,
}
/* Register Python objects in both commands' context. */
set_cmd_context (commands.set, self);
set_cmd_context (commands.show, self);
commands.set->set_context (self);
commands.show->set_context (self);
/* We (unfortunately) currently leak the command name. */
cmd_name.release ();