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:
parent
ac2d77c6a1
commit
0f8e203412
17 changed files with 69 additions and 62 deletions
|
@ -1,3 +1,14 @@
|
||||||
|
2021-06-25 Simon Marchi <simon.marchi@polymtl.ca>
|
||||||
|
|
||||||
|
* 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.
|
||||||
|
|
||||||
2021-06-25 Andrew Burgess <andrew.burgess@embecosm.com>
|
2021-06-25 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||||
|
|
||||||
* NEWS: Mention changes to 'info sources'.
|
* NEWS: Mention changes to 'info sources'.
|
||||||
|
|
|
@ -49,6 +49,7 @@
|
||||||
#include "typeprint.h"
|
#include "typeprint.h"
|
||||||
#include "namespace.h"
|
#include "namespace.h"
|
||||||
#include "cli/cli-style.h"
|
#include "cli/cli-style.h"
|
||||||
|
#include "cli/cli-decode.h"
|
||||||
|
|
||||||
#include "value.h"
|
#include "value.h"
|
||||||
#include "mi/mi-common.h"
|
#include "mi/mi-common.h"
|
||||||
|
@ -12229,7 +12230,7 @@ catch_ada_exception_command (const char *arg_entry, int from_tty,
|
||||||
std::string excep_string;
|
std::string excep_string;
|
||||||
std::string cond_string;
|
std::string cond_string;
|
||||||
|
|
||||||
tempflag = get_cmd_context (command) == CATCH_TEMPORARY;
|
tempflag = command->context () == CATCH_TEMPORARY;
|
||||||
|
|
||||||
if (!arg)
|
if (!arg)
|
||||||
arg = "";
|
arg = "";
|
||||||
|
@ -12254,7 +12255,7 @@ catch_ada_handlers_command (const char *arg_entry, int from_tty,
|
||||||
std::string excep_string;
|
std::string excep_string;
|
||||||
std::string cond_string;
|
std::string cond_string;
|
||||||
|
|
||||||
tempflag = get_cmd_context (command) == CATCH_TEMPORARY;
|
tempflag = command->context () == CATCH_TEMPORARY;
|
||||||
|
|
||||||
if (!arg)
|
if (!arg)
|
||||||
arg = "";
|
arg = "";
|
||||||
|
@ -12322,7 +12323,7 @@ catch_assert_command (const char *arg_entry, int from_tty,
|
||||||
int tempflag;
|
int tempflag;
|
||||||
std::string cond_string;
|
std::string cond_string;
|
||||||
|
|
||||||
tempflag = get_cmd_context (command) == CATCH_TEMPORARY;
|
tempflag = command->context () == CATCH_TEMPORARY;
|
||||||
|
|
||||||
if (!arg)
|
if (!arg)
|
||||||
arg = "";
|
arg = "";
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include "cli/cli-utils.h"
|
#include "cli/cli-utils.h"
|
||||||
#include "completer.h"
|
#include "completer.h"
|
||||||
#include "cli/cli-style.h"
|
#include "cli/cli-style.h"
|
||||||
|
#include "cli/cli-decode.h"
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
@ -389,7 +390,7 @@ catch_signal_command (const char *arg, int from_tty,
|
||||||
bool catch_all = false;
|
bool catch_all = false;
|
||||||
std::vector<gdb_signal> filter;
|
std::vector<gdb_signal> filter;
|
||||||
|
|
||||||
tempflag = get_cmd_context (command) == CATCH_TEMPORARY;
|
tempflag = command->context () == CATCH_TEMPORARY;
|
||||||
|
|
||||||
arg = skip_spaces (arg);
|
arg = skip_spaces (arg);
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#include "observable.h"
|
#include "observable.h"
|
||||||
#include "xml-syscall.h"
|
#include "xml-syscall.h"
|
||||||
#include "cli/cli-style.h"
|
#include "cli/cli-style.h"
|
||||||
|
#include "cli/cli-decode.h"
|
||||||
|
|
||||||
/* An instance of this type is used to represent a syscall catchpoint.
|
/* An instance of this type is used to represent a syscall catchpoint.
|
||||||
A breakpoint is really of this type iff its ops pointer points to
|
A breakpoint is really of this type iff its ops pointer points to
|
||||||
|
@ -439,7 +440,7 @@ catch_syscall_command_1 (const char *arg, int from_tty,
|
||||||
error (_("The feature 'catch syscall' is not supported on \
|
error (_("The feature 'catch syscall' is not supported on \
|
||||||
this architecture yet."));
|
this architecture yet."));
|
||||||
|
|
||||||
tempflag = get_cmd_context (command) == CATCH_TEMPORARY;
|
tempflag = command->context () == CATCH_TEMPORARY;
|
||||||
|
|
||||||
arg = skip_spaces (arg);
|
arg = skip_spaces (arg);
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
#include "gdb_regex.h"
|
#include "gdb_regex.h"
|
||||||
#include "cp-support.h"
|
#include "cp-support.h"
|
||||||
#include "location.h"
|
#include "location.h"
|
||||||
|
#include "cli/cli-decode.h"
|
||||||
|
|
||||||
/* Each spot where we may place an exception-related catchpoint has
|
/* Each spot where we may place an exception-related catchpoint has
|
||||||
two names: the SDT probe point and the function name. This
|
two names: the SDT probe point and the function name. This
|
||||||
|
@ -456,7 +457,7 @@ static void
|
||||||
catch_catch_command (const char *arg, int from_tty,
|
catch_catch_command (const char *arg, int from_tty,
|
||||||
struct cmd_list_element *command)
|
struct cmd_list_element *command)
|
||||||
{
|
{
|
||||||
bool tempflag = get_cmd_context (command) == CATCH_TEMPORARY;
|
bool tempflag = command->context () == CATCH_TEMPORARY;
|
||||||
|
|
||||||
catch_exception_event (EX_EVENT_CATCH, arg, tempflag, from_tty);
|
catch_exception_event (EX_EVENT_CATCH, arg, tempflag, from_tty);
|
||||||
}
|
}
|
||||||
|
@ -467,7 +468,7 @@ static void
|
||||||
catch_throw_command (const char *arg, int from_tty,
|
catch_throw_command (const char *arg, int from_tty,
|
||||||
struct cmd_list_element *command)
|
struct cmd_list_element *command)
|
||||||
{
|
{
|
||||||
bool tempflag = get_cmd_context (command) == CATCH_TEMPORARY;
|
bool tempflag = command->context () == CATCH_TEMPORARY;
|
||||||
|
|
||||||
catch_exception_event (EX_EVENT_THROW, arg, tempflag, from_tty);
|
catch_exception_event (EX_EVENT_THROW, arg, tempflag, from_tty);
|
||||||
}
|
}
|
||||||
|
@ -478,7 +479,7 @@ static void
|
||||||
catch_rethrow_command (const char *arg, int from_tty,
|
catch_rethrow_command (const char *arg, int from_tty,
|
||||||
struct cmd_list_element *command)
|
struct cmd_list_element *command)
|
||||||
{
|
{
|
||||||
bool tempflag = get_cmd_context (command) == CATCH_TEMPORARY;
|
bool tempflag = command->context () == CATCH_TEMPORARY;
|
||||||
|
|
||||||
catch_exception_event (EX_EVENT_RETHROW, arg, tempflag, from_tty);
|
catch_exception_event (EX_EVENT_RETHROW, arg, tempflag, from_tty);
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,6 +67,7 @@
|
||||||
#include "thread-fsm.h"
|
#include "thread-fsm.h"
|
||||||
#include "tid-parse.h"
|
#include "tid-parse.h"
|
||||||
#include "cli/cli-style.h"
|
#include "cli/cli-style.h"
|
||||||
|
#include "cli/cli-decode.h"
|
||||||
|
|
||||||
/* readline include files */
|
/* readline include files */
|
||||||
#include "readline/tilde.h"
|
#include "readline/tilde.h"
|
||||||
|
@ -8196,7 +8197,7 @@ catch_load_or_unload (const char *arg, int from_tty, int is_load,
|
||||||
struct cmd_list_element *command)
|
struct cmd_list_element *command)
|
||||||
{
|
{
|
||||||
const int enabled = 1;
|
const int enabled = 1;
|
||||||
bool temp = get_cmd_context (command) == CATCH_TEMPORARY;
|
bool temp = command->context () == CATCH_TEMPORARY;
|
||||||
|
|
||||||
add_solib_catchpoint (arg, is_load, temp, enabled);
|
add_solib_catchpoint (arg, is_load, temp, enabled);
|
||||||
}
|
}
|
||||||
|
@ -11280,7 +11281,7 @@ catch_fork_command_1 (const char *arg, int from_tty,
|
||||||
const char *cond_string = NULL;
|
const char *cond_string = NULL;
|
||||||
catch_fork_kind fork_kind;
|
catch_fork_kind fork_kind;
|
||||||
|
|
||||||
fork_kind = (catch_fork_kind) (uintptr_t) get_cmd_context (command);
|
fork_kind = (catch_fork_kind) (uintptr_t) command->context ();
|
||||||
bool temp = (fork_kind == catch_fork_temporary
|
bool temp = (fork_kind == catch_fork_temporary
|
||||||
|| fork_kind == catch_vfork_temporary);
|
|| fork_kind == catch_vfork_temporary);
|
||||||
|
|
||||||
|
@ -11324,7 +11325,7 @@ catch_exec_command_1 (const char *arg, int from_tty,
|
||||||
{
|
{
|
||||||
struct gdbarch *gdbarch = get_current_arch ();
|
struct gdbarch *gdbarch = get_current_arch ();
|
||||||
const char *cond_string = NULL;
|
const char *cond_string = NULL;
|
||||||
bool temp = get_cmd_context (command) == CATCH_TEMPORARY;
|
bool temp = command->context () == CATCH_TEMPORARY;
|
||||||
|
|
||||||
if (!arg)
|
if (!arg)
|
||||||
arg = "";
|
arg = "";
|
||||||
|
@ -15214,13 +15215,13 @@ add_catch_command (const char *name, const char *docstring,
|
||||||
command = add_cmd (name, class_breakpoint, docstring,
|
command = add_cmd (name, class_breakpoint, docstring,
|
||||||
&catch_cmdlist);
|
&catch_cmdlist);
|
||||||
set_cmd_sfunc (command, sfunc);
|
set_cmd_sfunc (command, sfunc);
|
||||||
set_cmd_context (command, user_data_catch);
|
command->set_context (user_data_catch);
|
||||||
set_cmd_completer (command, completer);
|
set_cmd_completer (command, completer);
|
||||||
|
|
||||||
command = add_cmd (name, class_breakpoint, docstring,
|
command = add_cmd (name, class_breakpoint, docstring,
|
||||||
&tcatch_cmdlist);
|
&tcatch_cmdlist);
|
||||||
set_cmd_sfunc (command, sfunc);
|
set_cmd_sfunc (command, sfunc);
|
||||||
set_cmd_context (command, user_data_tcatch);
|
command->set_context (user_data_tcatch);
|
||||||
set_cmd_completer (command, completer);
|
set_cmd_completer (command, completer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -134,18 +134,6 @@ cmd_cfunc_eq (struct cmd_list_element *cmd, cmd_const_cfunc_ftype *cfunc)
|
||||||
return cmd->func == do_const_cfunc && cmd->function.const_cfunc == cfunc;
|
return cmd->func == do_const_cfunc && cmd->function.const_cfunc == cfunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
set_cmd_context (struct cmd_list_element *cmd, void *context)
|
|
||||||
{
|
|
||||||
cmd->context = context;
|
|
||||||
}
|
|
||||||
|
|
||||||
void *
|
|
||||||
get_cmd_context (struct cmd_list_element *cmd)
|
|
||||||
{
|
|
||||||
return cmd->context;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
set_cmd_completer (struct cmd_list_element *cmd, completer_ftype *completer)
|
set_cmd_completer (struct cmd_list_element *cmd, completer_ftype *completer)
|
||||||
{
|
{
|
||||||
|
@ -593,8 +581,8 @@ add_setshow_enum_cmd (const char *name,
|
||||||
set_list, show_list);
|
set_list, show_list);
|
||||||
commands.set->enums = enumlist;
|
commands.set->enums = enumlist;
|
||||||
|
|
||||||
set_cmd_context (commands.set, context);
|
commands.set->set_context (context);
|
||||||
set_cmd_context (commands.show, context);
|
commands.show->set_context (context);
|
||||||
|
|
||||||
return commands;
|
return commands;
|
||||||
}
|
}
|
||||||
|
@ -920,7 +908,8 @@ delete_cmd (const char *name, struct cmd_list_element **list,
|
||||||
if (strcmp (iter->name, name) == 0)
|
if (strcmp (iter->name, name) == 0)
|
||||||
{
|
{
|
||||||
if (iter->destroyer)
|
if (iter->destroyer)
|
||||||
iter->destroyer (iter, iter->context);
|
iter->destroyer (iter, iter->context ());
|
||||||
|
|
||||||
if (iter->hookee_pre)
|
if (iter->hookee_pre)
|
||||||
iter->hookee_pre->hook_pre = 0;
|
iter->hookee_pre->hook_pre = 0;
|
||||||
*prehook = iter->hook_pre;
|
*prehook = iter->hook_pre;
|
||||||
|
|
|
@ -93,6 +93,12 @@ struct cmd_list_element
|
||||||
bool is_command_class_help () const
|
bool is_command_class_help () const
|
||||||
{ return this->func == nullptr; }
|
{ return this->func == nullptr; }
|
||||||
|
|
||||||
|
void set_context (void *context)
|
||||||
|
{ m_context = context; }
|
||||||
|
|
||||||
|
void *context () const
|
||||||
|
{ return m_context; }
|
||||||
|
|
||||||
/* Points to next command in this list. */
|
/* Points to next command in this list. */
|
||||||
struct cmd_list_element *next = nullptr;
|
struct cmd_list_element *next = nullptr;
|
||||||
|
|
||||||
|
@ -173,9 +179,6 @@ struct cmd_list_element
|
||||||
}
|
}
|
||||||
function;
|
function;
|
||||||
|
|
||||||
/* Local state (context) for this command. This can be anything. */
|
|
||||||
void *context = nullptr;
|
|
||||||
|
|
||||||
/* Documentation of this command (or help topic).
|
/* Documentation of this command (or help topic).
|
||||||
First line is brief documentation; remaining lines form, with it,
|
First line is brief documentation; remaining lines form, with it,
|
||||||
the full documentation. First line should end with a period.
|
the full documentation. First line should end with a period.
|
||||||
|
@ -256,6 +259,10 @@ struct cmd_list_element
|
||||||
when this command is being executed. It will be set back to false
|
when this command is being executed. It will be set back to false
|
||||||
when the command has been executed. */
|
when the command has been executed. */
|
||||||
int *suppress_notification = nullptr;
|
int *suppress_notification = nullptr;
|
||||||
|
|
||||||
|
private:
|
||||||
|
/* Local state (context) for this command. This can be anything. */
|
||||||
|
void *m_context = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Functions that implement commands about CLI commands. */
|
/* Functions that implement commands about CLI commands. */
|
||||||
|
|
|
@ -333,7 +333,7 @@ struct dump_context
|
||||||
static void
|
static void
|
||||||
call_dump_func (struct cmd_list_element *c, const char *args, int from_tty)
|
call_dump_func (struct cmd_list_element *c, const char *args, int from_tty)
|
||||||
{
|
{
|
||||||
struct dump_context *d = (struct dump_context *) get_cmd_context (c);
|
struct dump_context *d = (struct dump_context *) c->context ();
|
||||||
|
|
||||||
d->func (args, d->mode);
|
d->func (args, d->mode);
|
||||||
}
|
}
|
||||||
|
@ -352,7 +352,7 @@ add_dump_command (const char *name,
|
||||||
d = XNEW (struct dump_context);
|
d = XNEW (struct dump_context);
|
||||||
d->func = func;
|
d->func = func;
|
||||||
d->mode = FOPEN_WB;
|
d->mode = FOPEN_WB;
|
||||||
set_cmd_context (c, d);
|
c->set_context (d);
|
||||||
c->func = call_dump_func;
|
c->func = call_dump_func;
|
||||||
|
|
||||||
c = add_cmd (name, all_commands, descr, &append_cmdlist);
|
c = add_cmd (name, all_commands, descr, &append_cmdlist);
|
||||||
|
@ -360,7 +360,7 @@ add_dump_command (const char *name,
|
||||||
d = XNEW (struct dump_context);
|
d = XNEW (struct dump_context);
|
||||||
d->func = func;
|
d->func = func;
|
||||||
d->mode = FOPEN_AB;
|
d->mode = FOPEN_AB;
|
||||||
set_cmd_context (c, d);
|
c->set_context (d);
|
||||||
c->func = call_dump_func;
|
c->func = call_dump_func;
|
||||||
|
|
||||||
/* Replace "Dump " at start of docstring with "Append " (borrowed
|
/* Replace "Dump " at start of docstring with "Append " (borrowed
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
|
|
||||||
#include "defs.h"
|
#include "defs.h"
|
||||||
#include "cli/cli-cmds.h"
|
#include "cli/cli-cmds.h"
|
||||||
|
#include "cli/cli-decode.h"
|
||||||
#include "cli/cli-setshow.h"
|
#include "cli/cli-setshow.h"
|
||||||
#include "cli/cli-style.h"
|
#include "cli/cli-style.h"
|
||||||
#include "source-cache.h"
|
#include "source-cache.h"
|
||||||
|
@ -167,7 +168,7 @@ void
|
||||||
cli_style_option::do_set_value (const char *ignore, int from_tty,
|
cli_style_option::do_set_value (const char *ignore, int from_tty,
|
||||||
struct cmd_list_element *cmd)
|
struct cmd_list_element *cmd)
|
||||||
{
|
{
|
||||||
cli_style_option *cso = (cli_style_option *) get_cmd_context (cmd);
|
cli_style_option *cso = (cli_style_option *) cmd->context ();
|
||||||
cso->changed.notify ();
|
cso->changed.notify ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -180,7 +181,7 @@ do_show (const char *what, struct ui_file *file,
|
||||||
struct cmd_list_element *cmd,
|
struct cmd_list_element *cmd,
|
||||||
const char *value)
|
const char *value)
|
||||||
{
|
{
|
||||||
cli_style_option *cso = (cli_style_option *) get_cmd_context (cmd);
|
cli_style_option *cso = (cli_style_option *) cmd->context ();
|
||||||
fputs_filtered (_("The "), file);
|
fputs_filtered (_("The "), file);
|
||||||
fprintf_styled (file, cso->style (), _("\"%s\" style"), cso->name ());
|
fprintf_styled (file, cso->style (), _("\"%s\" style"), cso->name ());
|
||||||
fprintf_filtered (file, _(" %s is: %s\n"), what, value);
|
fprintf_filtered (file, _(" %s is: %s\n"), what, value);
|
||||||
|
|
|
@ -253,12 +253,6 @@ extern void set_cmd_completer_handle_brkchars (struct cmd_list_element *,
|
||||||
extern int cmd_cfunc_eq (struct cmd_list_element *cmd,
|
extern int cmd_cfunc_eq (struct cmd_list_element *cmd,
|
||||||
cmd_const_cfunc_ftype *cfun);
|
cmd_const_cfunc_ftype *cfun);
|
||||||
|
|
||||||
/* Each command object has a local context attached to it. */
|
|
||||||
extern void set_cmd_context (struct cmd_list_element *cmd,
|
|
||||||
void *context);
|
|
||||||
extern void *get_cmd_context (struct cmd_list_element *cmd);
|
|
||||||
|
|
||||||
|
|
||||||
/* Execute CMD's pre/post hook. Throw an error if the command fails.
|
/* Execute CMD's pre/post hook. Throw an error if the command fails.
|
||||||
If already executing this pre/post hook, or there is no pre/post
|
If already executing this pre/post hook, or there is no pre/post
|
||||||
hook, the call is silently ignored. */
|
hook, the call is silently ignored. */
|
||||||
|
|
|
@ -294,7 +294,7 @@ static void
|
||||||
cmdscm_function (struct cmd_list_element *command,
|
cmdscm_function (struct cmd_list_element *command,
|
||||||
const char *args, int from_tty)
|
const char *args, int from_tty)
|
||||||
{
|
{
|
||||||
command_smob *c_smob/*obj*/ = (command_smob *) get_cmd_context (command);
|
command_smob *c_smob/*obj*/ = (command_smob *) command->context ();
|
||||||
SCM arg_scm, tty_scm, result;
|
SCM arg_scm, tty_scm, result;
|
||||||
|
|
||||||
gdb_assert (c_smob != NULL);
|
gdb_assert (c_smob != NULL);
|
||||||
|
@ -383,7 +383,7 @@ cmdscm_completer (struct cmd_list_element *command,
|
||||||
completion_tracker &tracker,
|
completion_tracker &tracker,
|
||||||
const char *text, const char *word)
|
const char *text, const char *word)
|
||||||
{
|
{
|
||||||
command_smob *c_smob/*obj*/ = (command_smob *) get_cmd_context (command);
|
command_smob *c_smob/*obj*/ = (command_smob *) command->context ();
|
||||||
SCM completer_result_scm;
|
SCM completer_result_scm;
|
||||||
SCM text_scm, word_scm;
|
SCM text_scm, word_scm;
|
||||||
|
|
||||||
|
@ -788,7 +788,7 @@ gdbscm_register_command_x (SCM self)
|
||||||
cmd->destroyer = cmdscm_destroyer;
|
cmd->destroyer = cmdscm_destroyer;
|
||||||
|
|
||||||
c_smob->command = cmd;
|
c_smob->command = cmd;
|
||||||
set_cmd_context (cmd, c_smob);
|
cmd->set_context (c_smob);
|
||||||
|
|
||||||
if (gdbscm_is_true (c_smob->complete))
|
if (gdbscm_is_true (c_smob->complete))
|
||||||
{
|
{
|
||||||
|
|
|
@ -274,7 +274,7 @@ pascm_signal_setshow_error (SCM exception, const char *msg)
|
||||||
static void
|
static void
|
||||||
pascm_set_func (const char *args, int from_tty, struct cmd_list_element *c)
|
pascm_set_func (const char *args, int from_tty, struct cmd_list_element *c)
|
||||||
{
|
{
|
||||||
param_smob *p_smob = (param_smob *) get_cmd_context (c);
|
param_smob *p_smob = (param_smob *) c->context ();
|
||||||
SCM self, result, exception;
|
SCM self, result, exception;
|
||||||
|
|
||||||
gdb_assert (gdbscm_is_procedure (p_smob->set_func));
|
gdb_assert (gdbscm_is_procedure (p_smob->set_func));
|
||||||
|
@ -314,7 +314,7 @@ static void
|
||||||
pascm_show_func (struct ui_file *file, int from_tty,
|
pascm_show_func (struct ui_file *file, int from_tty,
|
||||||
struct cmd_list_element *c, const char *value)
|
struct cmd_list_element *c, const char *value)
|
||||||
{
|
{
|
||||||
param_smob *p_smob = (param_smob *) get_cmd_context (c);
|
param_smob *p_smob = (param_smob *) c->context ();
|
||||||
SCM value_scm, self, result, exception;
|
SCM value_scm, self, result, exception;
|
||||||
|
|
||||||
gdb_assert (gdbscm_is_procedure (p_smob->show_func));
|
gdb_assert (gdbscm_is_procedure (p_smob->show_func));
|
||||||
|
@ -468,13 +468,13 @@ add_setshow_generic (enum var_types param_type, enum command_class cmd_class,
|
||||||
tmp_name = cmd_name;
|
tmp_name = cmd_name;
|
||||||
param = lookup_cmd (&tmp_name, *show_list, "", NULL, 0, 1);
|
param = lookup_cmd (&tmp_name, *show_list, "", NULL, 0, 1);
|
||||||
gdb_assert (param != NULL);
|
gdb_assert (param != NULL);
|
||||||
set_cmd_context (param, self);
|
param->set_context (self);
|
||||||
*set_cmd = param;
|
*set_cmd = param;
|
||||||
|
|
||||||
tmp_name = cmd_name;
|
tmp_name = cmd_name;
|
||||||
param = lookup_cmd (&tmp_name, *set_list, "", NULL, 0, 1);
|
param = lookup_cmd (&tmp_name, *set_list, "", NULL, 0, 1);
|
||||||
gdb_assert (param != NULL);
|
gdb_assert (param != NULL);
|
||||||
set_cmd_context (param, self);
|
param->set_context (self);
|
||||||
*show_cmd = param;
|
*show_cmd = param;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -103,7 +103,7 @@ static void
|
||||||
cmdpy_function (struct cmd_list_element *command,
|
cmdpy_function (struct cmd_list_element *command,
|
||||||
const char *args, int from_tty)
|
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);
|
gdbpy_enter enter_py (get_current_arch (), current_language);
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ static gdbpy_ref<>
|
||||||
cmdpy_completer_helper (struct cmd_list_element *command,
|
cmdpy_completer_helper (struct cmd_list_element *command,
|
||||||
const char *text, const char *word)
|
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)
|
if (obj == NULL)
|
||||||
error (_("Invalid invocation of Python command object."));
|
error (_("Invalid invocation of Python command object."));
|
||||||
|
@ -532,7 +532,7 @@ cmdpy_init (PyObject *self, PyObject *args, PyObject *kw)
|
||||||
cmd->name_allocated = 1;
|
cmd->name_allocated = 1;
|
||||||
|
|
||||||
obj->command = cmd;
|
obj->command = cmd;
|
||||||
set_cmd_context (cmd, self_ref.release ());
|
cmd->set_context (self_ref.release ());
|
||||||
set_cmd_completer (cmd, ((completetype == -1) ? cmdpy_completer
|
set_cmd_completer (cmd, ((completetype == -1) ? cmdpy_completer
|
||||||
: completers[completetype].completer));
|
: completers[completetype].completer));
|
||||||
if (completetype == -1)
|
if (completetype == -1)
|
||||||
|
|
|
@ -376,7 +376,7 @@ static void
|
||||||
get_set_value (const char *args, int from_tty,
|
get_set_value (const char *args, int from_tty,
|
||||||
struct cmd_list_element *c)
|
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;
|
gdb::unique_xmalloc_ptr<char> set_doc_string;
|
||||||
|
|
||||||
gdbpy_enter enter_py (get_current_arch (), current_language);
|
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,
|
struct cmd_list_element *c,
|
||||||
const char *value)
|
const char *value)
|
||||||
{
|
{
|
||||||
PyObject *obj = (PyObject *) get_cmd_context (c);
|
PyObject *obj = (PyObject *) c->context ();
|
||||||
gdb::unique_xmalloc_ptr<char> show_doc_string;
|
gdb::unique_xmalloc_ptr<char> show_doc_string;
|
||||||
|
|
||||||
gdbpy_enter enter_py (get_current_arch (), current_language);
|
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. */
|
/* Register Python objects in both commands' context. */
|
||||||
set_cmd_context (commands.set, self);
|
commands.set->set_context (self);
|
||||||
set_cmd_context (commands.show, self);
|
commands.show->set_context (self);
|
||||||
|
|
||||||
/* We (unfortunately) currently leak the command name. */
|
/* We (unfortunately) currently leak the command name. */
|
||||||
cmd_name.release ();
|
cmd_name.release ();
|
||||||
|
|
|
@ -52,6 +52,7 @@
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
#include "target-connection.h"
|
#include "target-connection.h"
|
||||||
#include "valprint.h"
|
#include "valprint.h"
|
||||||
|
#include "cli/cli-decode.h"
|
||||||
|
|
||||||
static void generic_tls_error (void) ATTRIBUTE_NORETURN;
|
static void generic_tls_error (void) ATTRIBUTE_NORETURN;
|
||||||
|
|
||||||
|
@ -837,7 +838,7 @@ target_log_command (const char *p)
|
||||||
static void
|
static void
|
||||||
open_target (const char *args, int from_tty, struct cmd_list_element *command)
|
open_target (const char *args, int from_tty, struct cmd_list_element *command)
|
||||||
{
|
{
|
||||||
auto *ti = static_cast<target_info *> (get_cmd_context (command));
|
auto *ti = static_cast<target_info *> (command->context ());
|
||||||
target_open_ftype *func = target_factories[ti];
|
target_open_ftype *func = target_factories[ti];
|
||||||
|
|
||||||
if (targetdebug)
|
if (targetdebug)
|
||||||
|
@ -874,7 +875,7 @@ information on the arguments for a particular protocol, type\n\
|
||||||
`help target ' followed by the protocol name."),
|
`help target ' followed by the protocol name."),
|
||||||
&targetlist, 0, &cmdlist);
|
&targetlist, 0, &cmdlist);
|
||||||
c = add_cmd (t.shortname, no_class, t.doc, &targetlist);
|
c = add_cmd (t.shortname, no_class, t.doc, &targetlist);
|
||||||
set_cmd_context (c, (void *) &t);
|
c->set_context ((void *) &t);
|
||||||
set_cmd_sfunc (c, open_target);
|
set_cmd_sfunc (c, open_target);
|
||||||
if (completer != NULL)
|
if (completer != NULL)
|
||||||
set_cmd_completer (c, completer);
|
set_cmd_completer (c, completer);
|
||||||
|
@ -892,7 +893,7 @@ add_deprecated_target_alias (const target_info &tinfo, const char *alias)
|
||||||
see PR cli/15104. */
|
see PR cli/15104. */
|
||||||
c = add_cmd (alias, no_class, tinfo.doc, &targetlist);
|
c = add_cmd (alias, no_class, tinfo.doc, &targetlist);
|
||||||
set_cmd_sfunc (c, open_target);
|
set_cmd_sfunc (c, open_target);
|
||||||
set_cmd_context (c, (void *) &tinfo);
|
c->set_context ((void *) &tinfo);
|
||||||
alt = xstrprintf ("target %s", tinfo.shortname);
|
alt = xstrprintf ("target %s", tinfo.shortname);
|
||||||
deprecate_cmd (c, alt);
|
deprecate_cmd (c, alt);
|
||||||
}
|
}
|
||||||
|
|
|
@ -172,8 +172,7 @@ static void
|
||||||
tui_apply_layout (struct cmd_list_element *command,
|
tui_apply_layout (struct cmd_list_element *command,
|
||||||
const char *args, int from_tty)
|
const char *args, int from_tty)
|
||||||
{
|
{
|
||||||
tui_layout_split *layout
|
tui_layout_split *layout = (tui_layout_split *) command->context ();
|
||||||
= (tui_layout_split *) get_cmd_context (command);
|
|
||||||
|
|
||||||
/* Make sure the curses mode is enabled. */
|
/* Make sure the curses mode is enabled. */
|
||||||
tui_enable ();
|
tui_enable ();
|
||||||
|
@ -858,7 +857,7 @@ This layout was created using:\n\
|
||||||
name, name, spec.c_str ()));
|
name, name, spec.c_str ()));
|
||||||
|
|
||||||
cmd = add_cmd (name, class_tui, nullptr, doc.get (), &layout_list);
|
cmd = add_cmd (name, class_tui, nullptr, doc.get (), &layout_list);
|
||||||
set_cmd_context (cmd, layout);
|
cmd->set_context (layout);
|
||||||
/* There is no API to set this. */
|
/* There is no API to set this. */
|
||||||
cmd->func = tui_apply_layout;
|
cmd->func = tui_apply_layout;
|
||||||
cmd->destroyer = destroy_layout;
|
cmd->destroyer = destroy_layout;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue