From patchwork Thu Jan 4 01:49:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Baldwin X-Patchwork-Id: 25200 Received: (qmail 88031 invoked by alias); 4 Jan 2018 01:50:22 -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 87966 invoked by uid 89); 4 Jan 2018 01:50:21 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.0 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_HELO_PASS, SPF_SOFTFAIL autolearn=ham version=3.3.2 spammy=Hx-languages-length:1776 X-HELO: mail.baldwin.cx Received: from bigwig.baldwin.cx (HELO mail.baldwin.cx) (96.47.65.170) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 04 Jan 2018 01:50:20 +0000 Received: from ralph.baldwin.cx.com (astound-66-234-202-155.ca.astound.net [66.234.202.155]) by mail.baldwin.cx (Postfix) with ESMTPSA id 91F6A10A8CC for ; Wed, 3 Jan 2018 20:50:18 -0500 (EST) From: John Baldwin To: gdb-patches@sourceware.org Subject: [PATCH v2 3/5] Use gdb::unique_xmalloc_ptr<> instead of a deleter that invokes free(). Date: Wed, 3 Jan 2018 17:49:21 -0800 Message-Id: <20180104014923.11899-4-jhb@FreeBSD.org> In-Reply-To: <20180104014923.11899-1-jhb@FreeBSD.org> References: <20180104014923.11899-1-jhb@FreeBSD.org> X-IsSubscribed: yes Since xfree() always wraps free(), it is safe to use the xfree deleter for buffers allocated by library routines such as kinfo_getvmmap() that must be released via free(). gdb/ChangeLog: * fbsd-nat.c (struct free_deleter): Remove. (fbsd_find_memory_regions): Use gdb::unique_xmalloc_ptr<>. --- gdb/ChangeLog | 5 +++++ gdb/fbsd-nat.c | 10 +--------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 804dd4f402..cdce396e9c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2018-01-03 John Baldwin + + * fbsd-nat.c (struct free_deleter): Remove. + (fbsd_find_memory_regions): Use gdb::unique_xmalloc_ptr<>. + 2018-01-03 John Baldwin * fbsd-nat.c (fbsd_pid_to_exec_file) [KERN_PROC_PATHNAME]: Return diff --git a/gdb/fbsd-nat.c b/gdb/fbsd-nat.c index 7b1d1bf148..00e5cfb55c 100644 --- a/gdb/fbsd-nat.c +++ b/gdb/fbsd-nat.c @@ -78,14 +78,6 @@ fbsd_pid_to_exec_file (struct target_ops *self, int pid) } #ifdef HAVE_KINFO_GETVMMAP -/* Deleter for std::unique_ptr that invokes free. */ - -template -struct free_deleter -{ - void operator() (T *ptr) const { free (ptr); } -}; - /* Iterate over all the memory regions in the current inferior, calling FUNC for each memory region. OBFD is passed as the last argument to FUNC. */ @@ -99,7 +91,7 @@ fbsd_find_memory_regions (struct target_ops *self, uint64_t size; int i, nitems; - std::unique_ptr> + gdb::unique_xmalloc_ptr vmentl (kinfo_getvmmap (pid, &nitems)); if (vmentl == NULL) perror_with_name (_("Couldn't fetch VM map entries."));