ranged_breakpoint: move initialization to ctor
authorPedro Alves <pedro@palves.net>
Fri, 6 May 2022 21:48:11 +0000 (22:48 +0100)
committerPedro Alves <pedro@palves.net>
Fri, 20 May 2022 19:41:00 +0000 (20:41 +0100)
Move initialization of ranged_breakpoint's fields to its ctor.

Change-Id: If7b842861f3cc6a429ea329d45598b5852283ba3

gdb/breakpoint.c

index ced976ca39da5e48b3fecaec903da58d6b1781eb..1c1dbfb3ad71939be8ed8685095702476cfba1ae 100644 (file)
@@ -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<breakpoint> 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<breakpoint> 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);
 }