Eliminate copy_location_spec
authorPedro Alves <pedro@palves.net>
Fri, 27 May 2022 15:25:01 +0000 (16:25 +0100)
committerPedro Alves <pedro@palves.net>
Fri, 17 Jun 2022 08:58:49 +0000 (09:58 +0100)
copy_location_spec is just a wrapper around location_spec::clone(), so
remove it and call clone() directly.  This simplifies users, as they
no longer have to use std::unique_ptr::get().

Change-Id: I8ce8658589460b98888283b306b315a5b8f73976

gdb/breakpoint.c
gdb/linespec.c
gdb/location.c
gdb/location.h

index 82937a3b78a576024834fe75c2eb3e58ad2ad366..7e008ba87a4247fa029ec2c240b5788001f9ff02 100644 (file)
@@ -8422,8 +8422,9 @@ create_breakpoints_sal (struct gdbarch *gdbarch,
       /* Note that 'location' can be NULL in the case of a plain
         'break', without arguments.  */
       location_spec_up locspec
-       = (canonical->locspec != NULL
-          ? copy_location_spec (canonical->locspec.get ()) : NULL);
+       = (canonical->locspec != nullptr
+          ? canonical->locspec->clone ()
+          : nullptr);
       gdb::unique_xmalloc_ptr<char> filter_string
        (lsal.canonical != NULL ? xstrdup (lsal.canonical) : NULL);
 
@@ -8924,7 +8925,7 @@ create_breakpoint (struct gdbarch *gdbarch,
     {
       std::unique_ptr <breakpoint> b = new_breakpoint_from_type (gdbarch,
                                                                 type_wanted);
-      b->locspec = copy_location_spec (locspec);
+      b->locspec = locspec->clone ();
 
       if (parse_extra)
        b->cond_string = NULL;
@@ -12029,8 +12030,7 @@ strace_marker_create_breakpoints_sal (struct gdbarch *gdbarch,
 
   for (size_t i = 0; i < lsal.sals.size (); i++)
     {
-      location_spec_up locspec
-       = copy_location_spec (canonical->locspec.get ());
+      location_spec_up locspec = canonical->locspec->clone ();
 
       std::unique_ptr<tracepoint> tp
        (new tracepoint (gdbarch,
index 063944bb9a139d194061a1505c32614f9f4a946c..f992477b1d6091e351fafd98e2ea341a0106580d 100644 (file)
@@ -3083,8 +3083,7 @@ location_spec_to_sals (linespec_parser *parser,
          {
            addr = linespec_expression_to_pc (&addr_string);
            if (PARSER_STATE (parser)->canonical != NULL)
-             PARSER_STATE (parser)->canonical->locspec
-               = copy_location_spec (locspec);
+             PARSER_STATE (parser)->canonical->locspec = locspec->clone ();
          }
        else
          addr = addr_spec->address;
index 4d0b60ff9c7075a7b0d42e893bfa9a5549c769c1..19b58ab4f5b2a47d1c5242d81fbb236d143526b9 100644 (file)
@@ -355,14 +355,6 @@ explicit_location_spec::to_linespec () const
 
 /* See description in location.h.  */
 
-location_spec_up
-copy_location_spec (const location_spec *src)
-{
-  return src->clone ();
-}
-
-/* See description in location.h.  */
-
 const char *
 location_spec_to_string (struct location_spec *locspec)
 {
index 0a2f1799bc4d9f8304f3d6b4b3f7f52c85aeb2fb..8275fa9c731c30ccf5e53dac3b2757b8955326dc 100644 (file)
@@ -297,10 +297,6 @@ const explicit_location_spec *
 explicit_location_spec *
   as_explicit_location_spec (location_spec *locspec);
 
-/* Return a copy of the given SRC location spec.  */
-
-extern location_spec_up copy_location_spec (const location_spec *src);
-
 /* Attempt to convert the input string in *ARGP into a location_spec.
    ARGP is advanced past any processed input.  Always returns a non-nullptr
    location_spec unique pointer object.