From: Tom Tromey Date: Thu, 12 Oct 2017 22:24:13 +0000 (-0600) Subject: Remove cleanup from ppc-linux-nat.c X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=a90ecff85af9d9275f540227825ba62bdafc976d;p=deliverable%2Fbinutils-gdb.git Remove cleanup from ppc-linux-nat.c This removes a cleanup from ppc-linux-nat.c, by using unique_xmalloc_ptr. It also slightly simplifies the code by using XDUP rather than XNEW and memcpy. ChangeLog 2017-10-16 Tom Tromey * ppc-linux-nat.c (hwdebug_insert_point): Use gdb::unique_xmalloc_ptr, XDUP. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 248b5d8f89..adca69334c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2017-10-16 Tom Tromey + + * ppc-linux-nat.c (hwdebug_insert_point): Use + gdb::unique_xmalloc_ptr, XDUP. + 2017-10-16 Tom Tromey * probe.c (parse_probes): Use std::string. diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c index 45c8903ef6..7c8ab6c67b 100644 --- a/gdb/ppc-linux-nat.c +++ b/gdb/ppc-linux-nat.c @@ -1541,16 +1541,13 @@ hwdebug_insert_point (struct ppc_hw_breakpoint *b, int tid) { int i; long slot; - struct ppc_hw_breakpoint *p = XNEW (struct ppc_hw_breakpoint); + gdb::unique_xmalloc_ptr p (XDUP (ppc_hw_breakpoint, b)); struct hw_break_tuple *hw_breaks; - struct cleanup *c = make_cleanup (xfree, p); struct thread_points *t; struct hw_break_tuple *tuple; - memcpy (p, b, sizeof (struct ppc_hw_breakpoint)); - errno = 0; - slot = ptrace (PPC_PTRACE_SETHWDEBUG, tid, 0, p); + slot = ptrace (PPC_PTRACE_SETHWDEBUG, tid, 0, p.get ()); if (slot < 0) perror_with_name (_("Unexpected error setting breakpoint or watchpoint")); @@ -1564,13 +1561,11 @@ hwdebug_insert_point (struct ppc_hw_breakpoint *b, int tid) if (hw_breaks[i].hw_break == NULL) { hw_breaks[i].slot = slot; - hw_breaks[i].hw_break = p; + hw_breaks[i].hw_break = p.release (); break; } gdb_assert (i != max_slots_number); - - discard_cleanups (c); } /* This function is a generic wrapper that is responsible for removing a