- char *spec = ASTRDUP (exception_functions[kind].function);
-
- self->ops->decode_linespec (self, &spec, &sals);
+ struct explicit_location explicit_loc;
+
+ initialize_explicit_location (&explicit_loc);
+ explicit_loc.function_name
+ = ASTRDUP (exception_functions[kind].function);
+ location = new_explicit_location (&explicit_loc);
+ cleanup = make_cleanup_delete_event_location (location);
+ self->ops->decode_location (self, location, filter_pspace, &sals);
+ do_cleanups (cleanup);