From b925bf21e073f0d9531385e8cfc3a825887c0778 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Fri, 6 May 2022 22:48:11 +0100 Subject: [PATCH] ranged_breakpoint: move initialization to ctor Move initialization of ranged_breakpoint's fields to its ctor. Change-Id: If7b842861f3cc6a429ea329d45598b5852283ba3 --- gdb/breakpoint.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index ced976ca39d..1c1dbfb3ad7 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -317,9 +317,20 @@ struct dprintf_breakpoint : public ordinary_breakpoint /* Ranged breakpoints. */ struct ranged_breakpoint : public ordinary_breakpoint { - explicit ranged_breakpoint (struct gdbarch *gdbarch) + explicit ranged_breakpoint (struct gdbarch *gdbarch, + const symtab_and_line &sal_start, + int length, + event_location_up start_location, + event_location_up end_location) : ordinary_breakpoint (gdbarch, bp_hardware_breakpoint) { + bp_location *bl = add_location (sal_start); + bl->length = length; + + disposition = disp_donttouch; + + location = std::move (start_location); + location_range_end = std::move (end_location); } int breakpoint_hit (const struct bp_location *bl, @@ -9436,13 +9447,13 @@ break_range_command (const char *arg, int from_tty) return; } - /* Now set up the breakpoint. */ - std::unique_ptr br (new ranged_breakpoint (get_current_arch ())); - br->add_location (sal_start); - br->disposition = disp_donttouch; - br->location = std::move (start_location); - br->location_range_end = std::move (end_location); - br->loc->length = length; + /* Now set up the breakpoint and install it. */ + + std::unique_ptr br + (new ranged_breakpoint (get_current_arch (), + sal_start, length, + std::move (start_location), + std::move (end_location))); install_breakpoint (false, std::move (br), true); } -- 2.30.2