mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-05-23 18:26:47 +08:00
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:
@ -433,11 +433,9 @@ python_command (char *arg, int from_tty)
|
||||
}
|
||||
else
|
||||
{
|
||||
struct command_line *l = get_command_line (python_control, "");
|
||||
struct cleanup *cleanup = make_cleanup_free_command_lines (&l);
|
||||
command_line_up l = get_command_line (python_control, "");
|
||||
|
||||
execute_control_command_untraced (l);
|
||||
do_cleanups (cleanup);
|
||||
execute_control_command_untraced (l.get ());
|
||||
}
|
||||
}
|
||||
|
||||
@ -1452,11 +1450,9 @@ python_interactive_command (char *arg, int from_tty)
|
||||
error (_("Python scripting is not supported in this copy of GDB."));
|
||||
else
|
||||
{
|
||||
struct command_line *l = get_command_line (python_control, "");
|
||||
struct cleanup *cleanups = make_cleanup_free_command_lines (&l);
|
||||
command_line_up l = get_command_line (python_control, "");
|
||||
|
||||
execute_control_command_untraced (l);
|
||||
do_cleanups (cleanups);
|
||||
execute_control_command_untraced (l.get ());
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user