From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9871 invoked by alias); 3 Oct 2019 18:21:23 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 9860 invoked by uid 89); 3 Oct 2019 18:21:23 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-7.1 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS autolearn=ham version=3.3.1 spammy=TYPE_NAME, type_name, HX-Languages-Length:912, HContent-Transfer-Encoding:8bit X-HELO: userp2130.oracle.com Received: from userp2130.oracle.com (HELO userp2130.oracle.com) (156.151.31.86) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 03 Oct 2019 18:21:22 +0000 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x93IEQdM106437; Thu, 3 Oct 2019 18:21:19 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : to : references : from : message-id : date : mime-version : in-reply-to : content-type : content-transfer-encoding; s=corp-2019-08-05; bh=5IsSEL/BUnTC9xNEKqwcW43S9hVFd3B4y+J9q6iWvmk=; b=iS3JOvm/9pajGvPusDVASaoJuW64S3s2SFQnvGzewlw2DWlc6maWkX2kfRbphrNRzHIU 2gWdUD6P9Y7R4I5lDf/PB/Qp0QAl1v13+qLZIQDYcMM8jnXT9yT1mquhcGJjzvAgD6j1 0qwR3Gmid1PP26taYylmZHespYw341XrpW5nhEbEWZ+7xOBf+2/fUMEcXpn5lMXd3WC8 n0D20lOaF25Hb7AW375QWnON1cwP5CjEDPGO1gE7PkEoVRMtdRFfJ4gEHjrX42mPpM9U 7JuS7xtgMRYvHgEvQ+yYjmSEcgY2cHXXtdulnnCl9r2XOHp/tzgBGzfB5KtqOfE7Bjha cA== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2130.oracle.com with ESMTP id 2v9xxv66x9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 03 Oct 2019 18:21:19 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x93II96x130552; Thu, 3 Oct 2019 18:21:18 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by aserp3030.oracle.com with ESMTP id 2vcx72ws45-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 03 Oct 2019 18:21:18 +0000 Received: from abhmp0011.oracle.com (abhmp0011.oracle.com [141.146.116.17]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id x93ILHSe018386; Thu, 3 Oct 2019 18:21:17 GMT Received: from [10.159.232.91] (/10.159.232.91) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 03 Oct 2019 11:21:17 -0700 Subject: Re: [PATCH v2] gdb: CTF support To: Simon Marchi , gdb-patches@sourceware.org References: <1564530195-27659-1-git-send-email-weimin.pan@oracle.com> <5377c457-52b0-583d-15b5-47024eae1f48@simark.ca> <895f47d4-3e01-4d5a-474b-43dd2dd037b4@oracle.com> <0fe82814-46b8-79c2-6a25-5f5d51b158e1@simark.ca> <1055d18f-9e5c-3344-114a-3777876c9c63@oracle.com> <3a67839f-73d0-06ed-4140-073306fc618d@simark.ca> <75851ff5-771d-16fb-0a74-661c9e0722d3@simark.ca> From: Wei-min Pan Message-ID: Date: Thu, 03 Oct 2019 18:21:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <75851ff5-771d-16fb-0a74-661c9e0722d3@simark.ca> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-SW-Source: 2019-10/txt/msg00123.txt.bz2 On 10/3/2019 11:01 AM, Simon Marchi wrote: > On 2019-10-03 1:58 p.m., Wei-min Pan wrote: >> But the `free` call is needed to free up space allocated by libctf's ctf_type_aname_raw. > > That's the point of gdb::unique_xmalloc_pointer: it will automatically call xfree (free) when > on scope exit, free'ing this copy.  It's preferred to use this instead of manually calling > xfree, because it makes it harder to forget to free the memory (or to free it twice). Let's use an example (checking omitted): We're replacing:   name = ctf_type_aname_raw (fp, tid);   TYPE_NAME (type) = obstack_strdup (&of->objfile_obstack, name);   free (name); with   gdb::unique_xmalloc_ptr name (ctf_type_aname_raw (fp, tid));   TYPE_NAME (type) = obstack_strdup (&of->objfile_obstack, name.get ()); The allocated copy from ctf_type_aname_raw is not freed. Or did I miss something? Weimin