Introduce command_line_up
This introduces command_line_up, a unique_ptr for command_line objects, and changes many places to use it. This removes a number of cleanups. Command lines are funny in that sometimes they are reference counted. Once there is more C++-ification of some of the users, perhaps all of these can be changed to use shared_ptr instead. gdb/ChangeLog 2017-04-12 Tom Tromey <tom@tromey.com> * tracepoint.c (actions_command): Update. * python/python.c (python_command, python_interactive_command): Update. * mi/mi-cmd-break.c (mi_cmd_break_commands): Update. * guile/guile.c (guile_command): Update. * defs.h (read_command_lines, read_command_lines_1): Return command_line_up. (command_lines_deleter): New struct. (command_line_up): New typedef. * compile/compile.c (compile_code_command) (compile_print_command): Update. * cli/cli-script.h (get_command_line, copy_command_lines): Return command_line_up. (make_cleanup_free_command_lines): Remove. * cli/cli-script.c (get_command_line, read_command_lines_1) (copy_command_lines): Return command_line_up. (while_command, if_command, read_command_lines, define_command) (document_command): Update. (do_free_command_lines_cleanup, make_cleanup_free_command_lines): Remove. * breakpoint.h (breakpoint_set_commands): Change type of "commands". * breakpoint.c (breakpoint_set_commands): Change type of "commands". Update. (do_map_commands_command, update_dprintf_command_list) (create_tracepoint_from_upload): Update.
This commit is contained in:
parent
ffc2605c41
commit
93921405a4
11 changed files with 108 additions and 115 deletions
|
@ -647,20 +647,17 @@ static void
|
|||
actions_command (char *args, int from_tty)
|
||||
{
|
||||
struct tracepoint *t;
|
||||
struct command_line *l;
|
||||
|
||||
t = get_tracepoint_by_number (&args, NULL);
|
||||
if (t)
|
||||
{
|
||||
char *tmpbuf =
|
||||
xstrprintf ("Enter actions for tracepoint %d, one per line.",
|
||||
t->base.number);
|
||||
struct cleanup *cleanups = make_cleanup (xfree, tmpbuf);
|
||||
std::string tmpbuf =
|
||||
string_printf ("Enter actions for tracepoint %d, one per line.",
|
||||
t->base.number);
|
||||
|
||||
l = read_command_lines (tmpbuf, from_tty, 1,
|
||||
check_tracepoint_command, t);
|
||||
do_cleanups (cleanups);
|
||||
breakpoint_set_commands (&t->base, l);
|
||||
command_line_up l = read_command_lines (&tmpbuf[0], from_tty, 1,
|
||||
check_tracepoint_command, t);
|
||||
breakpoint_set_commands (&t->base, std::move (l));
|
||||
}
|
||||
/* else just return */
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue