diff options
author | Tom Tromey <tom@tromey.com> | 2017-04-05 21:14:09 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2017-04-12 11:16:17 -0600 |
commit | 93921405a46c0a58eae19fffb92e02416082801a (patch) | |
tree | c3a9c2a4407cb09bc571d5af47dce812a68169b0 /gdb/guile | |
parent | ffc2605c41d026cf5710704848b7c3b1cdbdcf49 (diff) | |
download | gdb-93921405a46c0a58eae19fffb92e02416082801a.zip gdb-93921405a46c0a58eae19fffb92e02416082801a.tar.gz gdb-93921405a46c0a58eae19fffb92e02416082801a.tar.bz2 |
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.
Diffstat (limited to 'gdb/guile')
-rw-r--r-- | gdb/guile/guile.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/gdb/guile/guile.c b/gdb/guile/guile.c index 27c0a58..9bb2487 100644 --- a/gdb/guile/guile.c +++ b/gdb/guile/guile.c @@ -215,10 +215,9 @@ guile_command (char *arg, int from_tty) } else { - struct command_line *l = get_command_line (guile_control, ""); + command_line_up l = get_command_line (guile_control, ""); - make_cleanup_free_command_lines (&l); - execute_control_command_untraced (l); + execute_control_command_untraced (l.get ()); } do_cleanups (cleanup); @@ -421,11 +420,9 @@ guile_command (char *arg, int from_tty) { /* Even if Guile isn't enabled, we still have to slurp the command list to the corresponding "end". */ - struct command_line *l = get_command_line (guile_control, ""); - struct cleanup *cleanups = make_cleanup_free_command_lines (&l); + command_line_up l = get_command_line (guile_control, ""); - execute_control_command_untraced (l); - do_cleanups (cleanups); + execute_control_command_untraced (l.get ()); } } |