From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.efficios.com (mail.efficios.com [167.114.26.124]) by sourceware.org (Postfix) with ESMTPS id C435F394BE03 for ; Tue, 19 May 2020 14:57:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C435F394BE03 Received: from localhost (localhost [127.0.0.1]) by mail.efficios.com (Postfix) with ESMTP id 378AD2A928F; Tue, 19 May 2020 10:57:38 -0400 (EDT) Received: from mail.efficios.com ([127.0.0.1]) by localhost (mail03.efficios.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id PLy23LrZArCE; Tue, 19 May 2020 10:57:38 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.efficios.com (Postfix) with ESMTP id 06A992A90B6; Tue, 19 May 2020 10:57:38 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.efficios.com 06A992A90B6 X-Virus-Scanned: amavisd-new at efficios.com Received: from mail.efficios.com ([127.0.0.1]) by localhost (mail03.efficios.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id DFTfj605Pqtm; Tue, 19 May 2020 10:57:37 -0400 (EDT) Received: from [10.0.0.193] (unknown [192.222.164.54]) by mail.efficios.com (Postfix) with ESMTPSA id DDAFA2A90B5; Tue, 19 May 2020 10:57:37 -0400 (EDT) Subject: Re: [PATCH 2/3] gdb: use std::vector to store segments in symfile_segment_data To: Tom Tromey , Simon Marchi via Gdb-patches References: <20200519013533.1428830-1-simon.marchi@efficios.com> <20200519013533.1428830-3-simon.marchi@efficios.com> <87zha47z42.fsf@tromey.com> From: Simon Marchi Message-ID: <8587474d-3714-d6b5-d1cc-85899b7e278c@efficios.com> Date: Tue, 19 May 2020 10:52:19 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <87zha47z42.fsf@tromey.com> Content-Type: text/plain; charset=utf-8 Content-Language: tl Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-8.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2020 14:57:39 -0000 On 2020-05-19 10:55 a.m., Tom Tromey wrote: >>>>>> "Simon" == Simon Marchi via Gdb-patches writes: > > Simon> symfile_segment_data_up data (new symfile_segment_data); > Simon> - data->num_segments = num_segments; > Simon> - data->segment_bases = XCNEWVEC (CORE_ADDR, num_segments); > Simon> - data->segment_sizes = XCNEWVEC (CORE_ADDR, num_segments); > > Simon> for (i = 0; i < num_segments; i++) > Simon> - { > Simon> - data->segment_bases[i] = segments[i]->p_vaddr; > Simon> - data->segment_sizes[i] = segments[i]->p_memsz; > Simon> - } > Simon> + data->segments.emplace_back (segments[i]->p_vaddr, segments[i]->p_memsz); > > It's probably better to just resize() to the desired size, instead of > using emplace_back. That may save some memory, because it won't > over-allocate. > > Probably not super important, but at the same time easy to do. Good point, will do. I probably can't resize if the elements are not default constructible, but if I call reserve, it should work as well? Simon