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:
Tom Tromey
2017-04-05 21:14:09 -06:00
parent ffc2605c41
commit 93921405a4
11 changed files with 108 additions and 115 deletions

View File

@ -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 ());
}
}