Introduce gdb_argv, a class wrapper for buildargv
authorTom Tromey <tom@tromey.com>
Mon, 1 May 2017 05:02:30 +0000 (23:02 -0600)
committerTom Tromey <tom@tromey.com>
Thu, 3 Aug 2017 13:59:08 +0000 (07:59 -0600)
commit773a1edcd1086fc76a91055bec67e2d14d76940d
tree4d82515964c139132435bfa57205f5f58c4ece48
parent0d50bde32b92821c9f1f660d273e6c996d26dc9f
Introduce gdb_argv, a class wrapper for buildargv

This introduces gdb_argv, a class wrapping an "argv" pointer; that is,
a pointer to a NULL-terminated array of char*, where both the array
and each non-NULL element in the array are xmalloc'd.

This patch then changes most users of gdb_buildargv to use gdb_argv
instead.

ChangeLog
2017-08-03  Tom Tromey  <tom@tromey.com>

* utils.h (struct gdb_argv_deleter): New.
(gdb_argv): New class.
* utils.c (gdb_argv::reset): New method.
* tracepoint.c (delete_trace_variable_command): Use gdb_argv.
* tracefile.c (tsave_command): Use gdb_argv.
* top.c (new_ui_command): Use gdb_argv.
* symmisc.c (maintenance_print_symbols)
(maintenance_print_msymbols, maintenance_expand_symtabs): Use gdb_argv.
* symfile.c (symbol_file_command, generic_load)
(remove_symbol_file_command): Use gdb_argv.
* stack.c (backtrace_command): Use gdb_argv.
* source.c (add_path, show_substitute_path_command)
(unset_substitute_path_command, set_substitute_path_command):
Use gdb_argv.
* skip.c (skip_command): Use gdb_argv.  Use gdb_buildargv.
* ser-mingw.c (pipe_windows_open): Use gdb_argv.
* remote.c (extended_remote_run, remote_put_command)
(remote_get_command, remote_delete_command): Use gdb_argv.
* remote-sim.c (gdbsim_load, gdbsim_create_inferior)
(gdbsim_open): Use gdb_argv.
* python/py-cmd.c (gdbpy_string_to_argv): Use gdb_argv.
* psymtab.c (maintenance_print_psymbols): Use gdb_argv.
* procfs.c (procfs_info_proc): Use gdb_argv.
* interps.c (interpreter_exec_cmd): Use gdb_argv.
* infrun.c (handle_command): Use gdb_argv.
* inferior.c (add_inferior_command, clone_inferior_command):
Use gdb_argv.
* guile/scm-string.c (gdbscm_string_to_argv): Use gdb_argv.
* exec.c (exec_file_command): Use gdb_argv.
* cli/cli-cmds.c (alias_command): Use gdb_argv.
* compile/compile.c (build_argc_argv): Use gdb_argv.
24 files changed:
gdb/ChangeLog
gdb/cli/cli-cmds.c
gdb/compile/compile.c
gdb/exec.c
gdb/guile/scm-string.c
gdb/inferior.c
gdb/infrun.c
gdb/interps.c
gdb/procfs.c
gdb/psymtab.c
gdb/python/py-cmd.c
gdb/remote-sim.c
gdb/remote.c
gdb/ser-mingw.c
gdb/skip.c
gdb/source.c
gdb/stack.c
gdb/symfile.c
gdb/symmisc.c
gdb/top.c
gdb/tracefile.c
gdb/tracepoint.c
gdb/utils.c
gdb/utils.h