binutils-gdb/gdb/python
Pedro Alves 6c5b2ebeac struct symtabs_and_lines -> std::vector<symtab_and_line>
This replaces "struct symtabs_and_lines" with
std::vector<symtab_and_line> in most cases.  This removes a number of
cleanups.

In some cases, the sals objects do not own the sals they point at.
Instead they point at some sal that lives on the stack.  Typically
something like this:

  struct symtab_and_line sal;
  struct symtabs_and_lines sals;

  // fill in sal

  sals.nelts = 1;
  sals.sals = &sal;

  // use sals

Instead of switching those cases to std::vector too, such usages are
replaced by gdb::array_view<symtab_and_line> instead.  This avoids
introducing heap allocations.

gdb/ChangeLog:
2017-09-04  Pedro Alves  <palves@redhat.com>

	* ax-gdb.c (agent_command_1): Use range-for.
	* break-catch-throw.c (re_set_exception_catchpoint): Update.
	* breakpoint.c: Include "common/array-view.h".
	(init_breakpoint_sal, create_breakpoint_sal): Change sals
	parameter from struct symtabs_and_lines to
	array_view<symtab_and_line>.  Adjust.  Use range-for.  Update.
	(breakpoint_sals_to_pc): Change sals parameter from struct
	symtabs_and_lines to std::vector reference.
	(check_fast_tracepoint_sals): Change sals parameter from struct
	symtabs_and_lines to std::array_view.  Use range-for.
	(decode_static_tracepoint_spec): Return a std::vector instead of
	symtabs_and_lines.  Update.
	(create_breakpoint): Update.
	(break_range_command, until_break_command, clear_command): Update.
	(base_breakpoint_decode_location, bkpt_decode_location)
	(bkpt_probe_create_sals_from_location)
	(bkpt_probe_decode_location, tracepoint_decode_location)
	(tracepoint_probe_decode_location)
	(strace_marker_create_sals_from_location): Return a std::vector
	instead of symtabs_and_lines.
	(strace_marker_create_breakpoints_sal): Update.
	(strace_marker_decode_location): Return a std::vector instead of
	symtabs_and_lines.  Update.
	(update_breakpoint_locations): Change struct symtabs_and_lines
	parameters to gdb::array_view.  Adjust.
	(location_to_sals): Return a std::vector instead of
	symtabs_and_lines.  Update.
	(breakpoint_re_set_default): Use std::vector instead of struct
	symtabs_and_lines.
	(decode_location_default): Return a std::vector instead of
	symtabs_and_lines.  Update.
	* breakpoint.h: Include "common/array-view.h".
	(struct breakpoint_ops) <decode_location>: Now returns a
	std::vector instead of returning a symtabs_and_lines via output
	parameter.
	(update_breakpoint_locations): Change sals parameters to use
	gdb::array_view.
	* cli/cli-cmds.c (edit_command, list_command): Update to use
	std::vector and gdb::array_view.
	(ambiguous_line_spec): Adjust to use gdb::array_view and
	range-for.
	(compare_symtabs): Rename to ...
	(cmp_symtabs): ... this.  Change parameters to symtab_and_line
	const reference and adjust.
	(filter_sals): Rewrite using std::vector and standard algorithms.
	* elfread.c (elf_gnu_ifunc_resolver_return_stop): Simplify.
	(jump_command): Update to use std::vector.
	* linespec.c (struct linespec_state) <canonical_names>: Update
	comment.
	(add_sal_to_sals_basic): Delete.
	(add_sal_to_sals, filter_results, convert_results_to_lsals)
	(decode_line_2, create_sals_line_offset)
	(convert_address_location_to_sals, convert_linespec_to_sals)
	(convert_explicit_location_to_sals, parse_linespec)
	(event_location_to_sals, decode_line_full, decode_line_1)
	(decode_line_with_current_source)
	(decode_line_with_last_displayed, decode_objc)
	(decode_digits_list_mode, decode_digits_ordinary, minsym_found)
	(linespec_result::~linespec_result): Adjust to use std::vector
	instead of symtabs_and_lines.
	* linespec.h (linespec_sals::sals): Now a std::vector.
	(struct linespec_result): Use std::vector, bool, and in-class
	initialization.
	(decode_line_1, decode_line_with_current_source)
	(decode_line_with_last_displayed): Return std::vector.
	* macrocmd.c (info_macros_command): Use std::vector.
	* mi/mi-main.c (mi_cmd_trace_find): Use std::vector.
	* probe.c (parse_probes_in_pspace, parse_probes): Adjust to use
	std::vector.
	* probe.h (parse_probes): Return a std::vector.
	* python/python.c (gdbpy_decode_line): Use std::vector and
	gdb::array_view.
	* source.c (select_source_symtab, line_info): Use std::vector.
	* stack.c (func_command): Use std::vector.
	* symtab.h (struct symtabs_and_lines): Delete.
	* tracepoint.c (tfind_line_command, scope_info): Use std::vector.
2017-09-04 17:11:15 +01:00
..
lib/gdb Import sys in gdb/python/lib/gdb/printer/bound_registers.py 2017-03-22 11:22:07 +00:00
py-arch.c -Wwrite-strings: Add a PyArg_ParseTupleAndKeywords "const char *" overload 2017-04-05 19:21:36 +01:00
py-auto-load.c update copyright year range in GDB files 2017-01-01 10:52:34 +04:00
py-block.c -Wwrite-strings: Wrap PyGetSetDef for construction with string literals 2017-04-05 19:21:36 +01:00
py-bpevent.c Turn gdbpy_ref into a template 2017-02-10 12:24:31 -07:00
py-breakpoint.c Avoid some manual memory management in Python 2017-08-03 07:59:07 -06:00
py-cmd.c Introduce gdb_argv, a class wrapper for buildargv 2017-08-03 07:59:08 -06:00
py-continueevent.c Turn gdbpy_ref into a template 2017-02-10 12:24:31 -07:00
py-event.c -Wwrite-strings: The Rest 2017-04-05 19:21:37 +01:00
py-event.h -Wwrite-strings: The Rest 2017-04-05 19:21:37 +01:00
py-events.h PR python/13598 - add before_prompt event 2017-02-14 10:38:56 -07:00
py-evtregistry.c Use gdbpy_ref to simplify some logic 2017-02-10 12:24:32 -07:00
py-evts.c -Wwrite-strings: The Rest 2017-04-05 19:21:37 +01:00
py-exitedevent.c Turn gdbpy_ref into a template 2017-02-10 12:24:31 -07:00
py-finishbreakpoint.c Introduce event_location_up 2017-04-12 11:16:17 -06:00
py-frame.c Use gdbpy_ref to simplify some logic 2017-02-10 12:24:32 -07:00
py-framefilter.c -Wwrite-strings: The Rest 2017-04-05 19:21:37 +01:00
py-function.c Turn gdbpy_ref into a template 2017-02-10 12:24:31 -07:00
py-gdb-readline.c Fix python-interactive with Python 3.6 2017-01-20 20:39:08 -05:00
py-inferior.c Add missing incref when creating Inferior Python object 2017-04-27 17:03:25 -04:00
py-infevents.c Turn gdbpy_ref into a template 2017-02-10 12:24:31 -07:00
py-infthread.c -Wwrite-strings: Wrap PyGetSetDef for construction with string literals 2017-04-05 19:21:36 +01:00
py-instruction.c Python: Introduce gdb.Instruction class 2017-05-02 11:35:54 +02:00
py-instruction.h Python: Introduce gdb.Instruction class 2017-05-02 11:35:54 +02:00
py-lazy-string.c -Wwrite-strings: Wrap PyGetSetDef for construction with string literals 2017-04-05 19:21:36 +01:00
py-linetable.c Change find_pcs_for_symtab_line to return a std::vector 2017-04-12 11:16:17 -06:00
py-newobjfileevent.c Turn gdbpy_ref into a template 2017-02-10 12:24:31 -07:00
py-objfile.c -Wwrite-strings: Add a PyArg_ParseTupleAndKeywords "const char *" overload 2017-04-05 19:21:36 +01:00
py-param.c Use gdb_argv in Python 2017-08-03 07:59:09 -06:00
py-prettyprint.c Change one more spot to use gdbpy_ref 2017-02-10 12:24:33 -07:00
py-progspace.c -Wwrite-strings: Wrap PyGetSetDef for construction with string literals 2017-04-05 19:21:36 +01:00
py-record-btrace.c btrace: Store btrace_insn in an std::vector 2017-09-04 10:46:36 +02:00
py-record-btrace.h Python: Move and rename gdb.BtraceFunction 2017-05-02 11:35:54 +02:00
py-record-full.c python: Implement btrace Python bindings for record history. 2017-02-14 10:57:56 +01:00
py-record-full.h python: Implement btrace Python bindings for record history. 2017-02-14 10:57:56 +01:00
py-record.c Python: Introduce gdb.Instruction class 2017-05-02 11:35:54 +02:00
py-record.h Python: Move and rename gdb.BtraceFunction 2017-05-02 11:35:54 +02:00
py-ref.h Turn gdbpy_ref into a template 2017-02-10 12:24:31 -07:00
py-signalevent.c Turn gdbpy_ref into a template 2017-02-10 12:24:31 -07:00
py-stopevent.c Turn gdbpy_ref into a template 2017-02-10 12:24:31 -07:00
py-stopevent.h update copyright year range in GDB files 2017-01-01 10:52:34 +04:00
py-symbol.c -Wwrite-strings: Add a PyArg_ParseTupleAndKeywords "const char *" overload 2017-04-05 19:21:36 +01:00
py-symtab.c -Wwrite-strings: Wrap PyGetSetDef for construction with string literals 2017-04-05 19:21:36 +01:00
py-threadevent.c Turn gdbpy_ref into a template 2017-02-10 12:24:31 -07:00
py-type.c Make cp_comp_to_string return a gdb::unique_xmalloc_ptr<char> 2017-08-09 15:04:32 +01:00
py-unwind.c Fix Python unwinder frames regression 2017-07-06 00:19:24 +01:00
py-utils.c Turn gdbpy_ref into a template 2017-02-10 12:24:31 -07:00
py-value.c -Wwrite-strings: Add a PyArg_ParseTupleAndKeywords "const char *" overload 2017-04-05 19:21:36 +01:00
py-varobj.c Avoid some manual memory management in Python 2017-08-03 07:59:07 -06:00
py-xmethods.c Support rvalue references in the gdb python module (includes doc/) 2017-03-20 13:47:52 -07:00
python-config.py
python-internal.h Python: Introduce gdb.Instruction class 2017-05-02 11:35:54 +02:00
python.c struct symtabs_and_lines -> std::vector<symtab_and_line> 2017-09-04 17:11:15 +01:00
python.h update copyright year range in GDB files 2017-01-01 10:52:34 +04:00