aboutsummaryrefslogtreecommitdiff
path: root/gdb/tui
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2017-09-04 17:10:13 +0100
committerPedro Alves <palves@redhat.com>2017-09-04 17:11:45 +0100
commit51abb421302bdd86946827727aebc878b5c756e3 (patch)
treea858a4e92e66d7dd3e4e196215a422b8756f9e10 /gdb/tui
parent6c5b2ebeacc2538cf342cfd13c4c98ff018e6c9a (diff)
downloadgdb-51abb421302bdd86946827727aebc878b5c756e3.zip
gdb-51abb421302bdd86946827727aebc878b5c756e3.tar.gz
gdb-51abb421302bdd86946827727aebc878b5c756e3.tar.bz2
Kill init_sal
Instead, make symtab_and_line initialize its members itself. Many symtab_and_line declarations are moved to where the object is initialized at the same time both for clarity and to avoid double initialization. A few functions, like e.g., find_frame_sal are adjusted to return the sal using normal function return instead of an output parameter likewise to avoid having to default-construct a sal and then immediately have the object overwritten. gdb/ChangeLog: 2017-09-04 Pedro Alves <palves@redhat.com> * ada-lang.c (is_known_support_routine): Move sal declaration to where it is initialized. * breakpoint.c (create_internal_breakpoint, init_catchpoint) (parse_breakpoint_sals, decode_static_tracepoint_spec) (clear_command, update_static_tracepoint): Remove init_sal references. Move declarations closer to initializations. * cli/cli-cmds.c (list_command): Move sal declarations closer to initializations. * elfread.c (elf_gnu_ifunc_resolver_stop): Remove init_sal references. Move sal declarations closer to initializations. * frame.c (find_frame_sal): Return a symtab_and_line via function return instead of output parameter. Remove init_sal references. * frame.h (find_frame_sal): Return a symtab_and_line via function return instead of output parameter. * guile/scm-frame.c (gdbscm_frame_sal): Adjust. * guile/scm-symtab.c (stscm_make_sal_smob): Use in-place new instead of memset. (gdbscm_find_pc_line): Remove init_sal reference. * infcall.c (call_function_by_hand_dummy): Remove init_sal references. Move declarations closer to initializations. * infcmd.c (set_step_frame): Update. Move declarations closer to initializations. (finish_backward): Remove init_sal references. Move declarations closer to initializations. * infrun.c (process_event_stop_test, handle_step_into_function) (insert_hp_step_resume_breakpoint_at_frame) (insert_step_resume_breakpoint_at_caller): Likewise. * linespec.c (create_sals_line_offset, decode_digits_ordinary) (symbol_to_sal): Likewise. * probe.c (parse_probes_in_pspace): Remove init_sal reference. * python/py-frame.c (frapy_find_sal): Move sal declaration closer to its initialization. * reverse.c (save_bookmark_command): Use new/delete. Remove init_sal references. Move declarations closer to initializations. * source.c (get_current_source_symtab_and_line): Remove brace initialization. (set_current_source_symtab_and_line): Now takes the sal by const reference. Remove brace initialization. (line_info): Remove init_sal reference. * source.h (set_current_source_symtab_and_line): Now takes a symtab_and_line via const reference. * stack.c (set_current_sal_from_frame): Adjust. (print_frame_info): Adjust. (get_last_displayed_sal): Return the sal via function return instead of via output parameter. Simplify. (frame_info): Adjust. * stack.h (get_last_displayed_sal): Return the sal via function return instead of via output parameter. * symtab.c (init_sal): Delete. (find_pc_sect_line): Remove init_sal references. Move declarations closer to initializations. (find_function_start_sal): Remove init_sal references. Move declarations closer to initializations. * symtab.h (struct symtab_and_line): In-class initialize all fields. * tracepoint.c (set_traceframe_context) (print_one_static_tracepoint_marker): Remove init_sal references. Move declarations closer to initializations. * tui/tui-disasm.c (tui_show_disassem_and_update_source): Adjust. * tui/tui-stack.c (tui_show_frame_info): Adjust. Move declarations closer to initializations. * tui/tui-winsource.c (tui_update_source_window_as_is): Remove init_sal references. Adjust.
Diffstat (limited to 'gdb/tui')
-rw-r--r--gdb/tui/tui-disasm.c2
-rw-r--r--gdb/tui/tui-stack.c3
-rw-r--r--gdb/tui/tui-winsource.c7
3 files changed, 5 insertions, 7 deletions
diff --git a/gdb/tui/tui-disasm.c b/gdb/tui/tui-disasm.c
index 123a906..a763832 100644
--- a/gdb/tui/tui-disasm.c
+++ b/gdb/tui/tui-disasm.c
@@ -305,7 +305,7 @@ tui_show_disassem_and_update_source (struct gdbarch *gdbarch,
tui_update_source_window (TUI_SRC_WIN, gdbarch, sal.symtab, val, TRUE);
if (sal.symtab)
{
- set_current_source_symtab_and_line (&sal);
+ set_current_source_symtab_and_line (sal);
tui_update_locator_fullname (symtab_to_fullname (sal.symtab));
}
else
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index 21a8bac..c075bef 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -366,10 +366,9 @@ tui_show_frame_info (struct frame_info *fi)
CORE_ADDR low;
struct tui_gen_win_info *locator = tui_locator_win_info_ptr ();
int source_already_displayed;
- struct symtab_and_line sal;
CORE_ADDR pc;
- find_frame_sal (fi, &sal);
+ symtab_and_line sal = find_frame_sal (fi);
source_already_displayed = sal.symtab != 0
&& tui_source_is_displayed (symtab_to_fullname (sal.symtab));
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
index 3ae9c71..103b1e6 100644
--- a/gdb/tui/tui-winsource.c
+++ b/gdb/tui/tui-winsource.c
@@ -109,14 +109,13 @@ tui_update_source_window_as_is (struct tui_win_info *win_info,
tui_update_exec_info (win_info);
if (win_info->generic.type == SRC_WIN)
{
- struct symtab_and_line sal;
-
- init_sal (&sal);
+ symtab_and_line sal;
+
sal.line = line_or_addr.u.line_no +
(win_info->generic.content_size - 2);
sal.symtab = s;
sal.pspace = SYMTAB_PSPACE (s);
- set_current_source_symtab_and_line (&sal);
+ set_current_source_symtab_and_line (sal);
/* If the focus was in the asm win, put it in the src win if
we don't have a split layout. */
if (tui_win_with_focus () == TUI_DISASM_WIN