From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24719 invoked by alias); 23 Nov 2017 16:52:10 -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 23331 invoked by uid 89); 23 Nov 2017 16:52:09 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.7 required=5.0 tests=BAYES_00,KAM_LAZY_DOMAIN_SECURITY,KB_WAM_FROM_NAME_SINGLEWORD,SPF_HELO_PASS,T_RP_MATCHES_RCVD autolearn=no version=3.3.2 spammy=glanced X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 23 Nov 2017 16:52:09 +0000 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id DAD587E422; Thu, 23 Nov 2017 16:52:07 +0000 (UTC) Received: from [127.0.0.1] (ovpn04.gateway.prod.ext.ams2.redhat.com [10.39.146.4]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0C9B45D9C7; Thu, 23 Nov 2017 16:52:06 +0000 (UTC) Subject: Re: [PATCH 2/4] remote: C++ify thread_item and threads_listing_context To: Simon Marchi References: <1511368867-19365-1-git-send-email-simon.marchi@ericsson.com> <1511368867-19365-3-git-send-email-simon.marchi@ericsson.com> <59086522-06e7-c9a5-a2b3-799d4bc7fb59@redhat.com> Cc: Simon Marchi , gdb-patches@sourceware.org From: Pedro Alves Message-ID: <9b972862-115b-fe23-4ce9-d641a7b6fe7e@redhat.com> Date: Thu, 23 Nov 2017 16:52:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-SW-Source: 2017-11/txt/msg00561.txt.bz2 On 11/23/2017 04:48 PM, Simon Marchi wrote: > On 2017-11-23 09:22, Pedro Alves wrote: >>> @@ -3109,37 +3105,28 @@ start_thread (struct gdb_xml_parser *parser, >>> { >> >>> attr = xml_find_attribute (attributes, "name"); >>> - item.name = attr != NULL ? xstrdup ((const char *) attr->value) : >>> NULL; >>> + if (attr != NULL) >>> + item.name = (const char *) attr->value; >> >> Are you missing the xstrdup here? I guess this is related to >> the awkwardness you mentioned. > > I don't think so, here item.name is an std::string, so the assignment > does a copy. This copy is required I think, because attr->value won't > exist after we're done parsing the XML. > >>> @@ -3150,8 +3137,8 @@ end_thread (struct gdb_xml_parser *parser, >>> struct threads_listing_context *data >>> = (struct threads_listing_context *) user_data; >>> >>> - if (body_text && *body_text) >>> - VEC_last (thread_item_t, data->items)->extra = xstrdup (body_text); >>> + if (body_text != NULL && *body_text != '\0') >>> + data->items.back ().extra = body_text; >> >> And here? > > Same, extra is an std::string. Right, sorry, glanced over that too quickly. :-P Thanks, Pedro Alves