From: Tom Tromey Date: Mon, 5 Feb 2018 09:53:57 +0000 (+0100) Subject: Remove a cleanup from gdbserver X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=45dd3607e24aaf515b5d75c666b351575410392b;p=binutils-gdb.git Remove a cleanup from gdbserver This removes a cleanup from gdbserver's set_raw_breakpoint_at, replacing it with unique_xmalloc_ptr. 2018-02-08 Tom Tromey * mem-break.c (set_raw_breakpoint_at): Use gdb::unique_xmalloc_ptr. --- diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 9559e63f92e..145ba440cbc 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,8 @@ +2018-02-08 Tom Tromey + + * mem-break.c (set_raw_breakpoint_at): Use + gdb::unique_xmalloc_ptr. + 2018-01-30 Pedro Alves PR gdb/13211 diff --git a/gdb/gdbserver/mem-break.c b/gdb/gdbserver/mem-break.c index bb385733fe4..4c10fbba2cd 100644 --- a/gdb/gdbserver/mem-break.c +++ b/gdb/gdbserver/mem-break.c @@ -431,7 +431,6 @@ set_raw_breakpoint_at (enum raw_bkpt_type type, CORE_ADDR where, int kind, { struct process_info *proc = current_process (); struct raw_breakpoint *bp; - struct cleanup *old_chain = make_cleanup (null_cleanup, NULL); if (type == raw_bkpt_type_sw || type == raw_bkpt_type_hw) { @@ -450,13 +449,14 @@ set_raw_breakpoint_at (enum raw_bkpt_type type, CORE_ADDR where, int kind, else bp = find_raw_breakpoint_at (where, type, kind); + gdb::unique_xmalloc_ptr bp_holder; if (bp == NULL) { - bp = XCNEW (struct raw_breakpoint); + bp_holder.reset (XCNEW (struct raw_breakpoint)); + bp = bp_holder.get (); bp->pc = where; bp->kind = kind; bp->raw_type = type; - make_cleanup (xfree, bp); } if (!bp->inserted) @@ -468,14 +468,15 @@ set_raw_breakpoint_at (enum raw_bkpt_type type, CORE_ADDR where, int kind, debug_printf ("Failed to insert breakpoint at 0x%s (%d).\n", paddress (where), *err); - do_cleanups (old_chain); return NULL; } bp->inserted = 1; } - discard_cleanups (old_chain); + /* If the breakpoint was allocated above, we know we want to keep it + now. */ + bp_holder.release (); /* Link the breakpoint in, if this is the first reference. */ if (++bp->refcount == 1)