btrace: Use function segment index in call iterator.
[deliverable/binutils-gdb.git] / gdb / linespec.c
index 51fa1284fecb15c0d724a368c9b26f9e3babd77c..4c076fea3eb46020dd0bc5d651213855c2b7a188 100644 (file)
@@ -1750,8 +1750,9 @@ canonicalize_linespec (struct linespec_state *state, const linespec_p ls)
     return;
 
   /* Save everything as an explicit location.  */
-  canon = state->canonical->location
-    = new_explicit_location (&ls->explicit_loc).release ();
+  state->canonical->location
+    = new_explicit_location (&ls->explicit_loc);
+  canon = state->canonical->location.get ();
   explicit_loc = get_explicit_location (canon);
 
   if (explicit_loc->label_name != NULL)
@@ -2491,7 +2492,7 @@ event_location_to_sals (linespec_parser *parser,
            addr = linespec_expression_to_pc (&const_expr);
            if (PARSER_STATE (parser)->canonical != NULL)
              PARSER_STATE (parser)->canonical->location
-               = copy_event_location (location).release ();
+               = copy_event_location (location);
 
            do_cleanups (cleanup);
          }
@@ -2553,7 +2554,8 @@ decode_line_full (const struct event_location *location, int flags,
                       search_pspace, default_symtab,
                       default_line, canonical);
   cleanups = make_cleanup (linespec_parser_delete, &parser);
-  save_current_program_space ();
+
+  scoped_restore_current_program_space restore_pspace;
 
   result = event_location_to_sals (&parser, location);
   state = PARSER_STATE (&parser);
@@ -2615,7 +2617,8 @@ decode_line_1 (const struct event_location *location, int flags,
                       search_pspace, default_symtab,
                       default_line, NULL);
   cleanups = make_cleanup (linespec_parser_delete, &parser);
-  save_current_program_space ();
+
+  scoped_restore_current_program_space restore_pspace;
 
   result = event_location_to_sals (&parser, location);
 
@@ -2780,7 +2783,7 @@ decode_objc (struct linespec_state *self, linespec_p ls, const char *arg)
            str = xstrdup (saved_arg);
 
          make_cleanup (xfree, str);
-         self->canonical->location = new_linespec_location (&str).release ();
+         self->canonical->location = new_linespec_location (&str);
        }
     }
 
@@ -3892,7 +3895,6 @@ linespec_result::~linespec_result ()
   int i;
   struct linespec_sals *lsal;
 
-  delete_event_location (location);
   for (i = 0; VEC_iterate (linespec_sals, sals, i, lsal); ++i)
     {
       xfree (lsal->canonical);
This page took 0.025698 seconds and 4 git commands to generate.