From patchwork Wed Feb 7 22:04:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 25867 Received: (qmail 3935 invoked by alias); 7 Feb 2018 22:04:45 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 3710 invoked by uid 89); 7 Feb 2018 22:04:43 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.5 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=bp X-HELO: gateway30.websitewelcome.com Received: from gateway30.websitewelcome.com (HELO gateway30.websitewelcome.com) (192.185.147.85) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 07 Feb 2018 22:04:39 +0000 Received: from cm17.websitewelcome.com (cm17.websitewelcome.com [100.42.49.20]) by gateway30.websitewelcome.com (Postfix) with ESMTP id 48122C656 for ; Wed, 7 Feb 2018 16:04:38 -0600 (CST) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id jXpWe1ErfuMnyjXpWehkLo; Wed, 07 Feb 2018 16:04:38 -0600 Received: from 174-29-33-254.hlrn.qwest.net ([174.29.33.254]:59168 helo=pokyo.Home) by box5379.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.89) (envelope-from ) id 1ejXpV-002nlZ-Rk; Wed, 07 Feb 2018 16:04:37 -0600 From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [RFA 1/9] Remove a cleanup from gdbserver Date: Wed, 7 Feb 2018 15:04:26 -0700 Message-Id: <20180207220434.6045-2-tom@tromey.com> In-Reply-To: <20180207220434.6045-1-tom@tromey.com> References: <20180207220434.6045-1-tom@tromey.com> X-BWhitelist: no X-Source-L: No X-Exim-ID: 1ejXpV-002nlZ-Rk X-Source-Sender: 174-29-33-254.hlrn.qwest.net (pokyo.Home) [174.29.33.254]:59168 X-Source-Auth: tom+tromey.com X-Email-Count: 2 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes This removes a cleanup from gdbserver's set_raw_breakpoint_at, replacing it with unique_xmalloc_ptr. 2018-02-07 Tom Tromey * mem-break.c (set_raw_breakpoint_at): Use gdb::unique_xmalloc_ptr. --- gdb/gdbserver/ChangeLog | 5 +++++ gdb/gdbserver/mem-break.c | 11 ++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 9559e63f92..902ee7c7fd 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,8 @@ +2018-02-07 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 bb385733fe..4c10fbba2c 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)