From ffc2605c41d026cf5710704848b7c3b1cdbdcf49 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 5 Apr 2017 20:44:01 -0600 Subject: Introduce event_location_up This removes make_cleanup_delete_event_location and instead changes the various location functions to return an event_location_up, a new unique_ptr typedef. This is largely straightforward, but be sure to examine the init_breakpoint_sal change. I believe the code I deleted there is dead, because "location != NULL" can never be true in that branch; but you should double-check. gdb/ChangeLog 2017-04-12 Tom Tromey * tracepoint.c (scope_info): Update. * spu-tdep.c (spu_catch_start): Update. * python/python.c (gdbpy_decode_line): Update. * python/py-finishbreakpoint.c (bpfinishpy_init): Update. * python/py-breakpoint.c (bppy_init): Update. * probe.c (parse_probes): Update. * mi/mi-cmd-break.c (mi_cmd_break_insert_1): Update. * location.h (event_location_deleter): New struct. (event_location_up): New typedef. (new_linespec_location, new_address_location, new_probe_location) (new_explicit_location, copy_event_location) (string_to_event_location, string_to_event_location_basic) (string_to_explicit_location): Update return type. (make_cleanup_delete_event_location): Remove. * location.c (new_linespec_location, new_address_location) (new_probe_location, new_explicit_location, copy_event_location): Return event_location_up. (delete_event_location_cleanup) (make_cleanup_delete_event_location): Remove. (string_to_explicit_location, string_to_event_location_basic) (string_to_event_location): Return event_location_up. * linespec.c (canonicalize_linespec, event_location_to_sals) (decode_line_with_current_source) (decode_line_with_last_displayed, decode_objc): Update. * guile/scm-breakpoint.c (gdbscm_register_breakpoint_x): Update. * completer.c (location_completer): Update. * cli/cli-cmds.c (edit_command, list_command): Update. * breakpoint.c (create_overlay_event_breakpoint) (create_longjmp_master_breakpoint) (create_std_terminate_master_breakpoint) (create_exception_master_breakpoint) (create_thread_event_breakpoint): Update. (init_breakpoint_sal): Update. Remove some dead code. (create_breakpoint_sal): Change type of "location". Update. (create_breakpoints_sal, create_breakpoint, break_command_1) (dprintf_command, break_range_command, until_break_command) (init_ada_exception_breakpoint) (strace_marker_create_sals_from_location) (update_static_tracepoint, trace_command, ftrace_command) (strace_command, create_tracepoint_from_upload): Update. * break-catch-throw.c (re_set_exception_catchpoint): Update. * ax-gdb.c (agent_command_1): Update. --- gdb/python/python.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'gdb/python/python.c') diff --git a/gdb/python/python.c b/gdb/python/python.c index e0e24ac..ec202de 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -672,7 +672,7 @@ gdbpy_decode_line (PyObject *self, PyObject *args) struct cleanup *cleanups; gdbpy_ref<> result; gdbpy_ref<> unparsed; - struct event_location *location = NULL; + event_location_up location; if (! PyArg_ParseTuple (args, "|s", &arg)) return NULL; @@ -682,15 +682,12 @@ gdbpy_decode_line (PyObject *self, PyObject *args) sals.sals = NULL; if (arg != NULL) - { - location = string_to_event_location_basic (&arg, python_language); - make_cleanup_delete_event_location (location); - } + location = string_to_event_location_basic (&arg, python_language); TRY { if (location != NULL) - sals = decode_line_1 (location, 0, NULL, NULL, 0); + sals = decode_line_1 (location.get (), 0, NULL, NULL, 0); else { set_default_source_symtab_and_line (); -- cgit v1.1