From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by sourceware.org (Postfix) with ESMTPS id EAF3F3844041 for ; Wed, 5 Aug 2020 18:02:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org EAF3F3844041 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=palves.net Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=alves.ped@gmail.com Received: by mail-wm1-f67.google.com with SMTP id f18so4895069wmc.0 for ; Wed, 05 Aug 2020 11:02:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=mvB9q96H1hAdk9L4cUUjVJFdMBTR79EdqFD8fISt6X0=; b=MICFqVKyRveA98+JUVK9bZTGplqEQtIDoGfsroZLcHdvLMDep4B4UkmslTdxoQwF/3 3mSQoZSvCI1/hoTKyGwDGCmLessLhfB3sb4n0JYrH5QdmdKh7Hh96UG1QvBpqEidbw5I HOY91Mu+jECYTR1XOPYU0PQ8/7dcHRKox7v9LvdjqNzo36H+g7gJVAp2LeeajyLBlXNd Crov+JMb8HaH4dKHKgbCILFQJA+LQ8KMSfTF+DOkzjY7uj7ZxW7aKvCZzpC21jCwWjoV AwfULf0TFGSEKXSKH+CnAE8Ry3EYi0SHhSAVLLUcQA4TqjL3Ebk0F77CmqvA9G+WtmK4 6Z+Q== X-Gm-Message-State: AOAM531MaLqELzJqJephgbwsj+pUFL/Ph5BARLb2opjGI9jEqV+SqM5a ZyN1TR4Xknuw3k0Uw7HBMcuSsUyJKlM= X-Google-Smtp-Source: ABdhPJwT5NorXmqgeJniSeXX+teAZG4Gnrp4cfBkNXNptlM984qxULY0aIFAc6anbWDLke0Rqk16yw== X-Received: by 2002:a7b:c845:: with SMTP id c5mr4425241wml.180.1596650551699; Wed, 05 Aug 2020 11:02:31 -0700 (PDT) Received: from ?IPv6:2001:8a0:f91a:c400:56ee:75ff:fe8d:232b? ([2001:8a0:f91a:c400:56ee:75ff:fe8d:232b]) by smtp.gmail.com with ESMTPSA id 128sm3526790wmz.43.2020.08.05.11.02.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 05 Aug 2020 11:02:30 -0700 (PDT) Subject: Re: [PATCH 4/4] gdb: change regcache list to be a map To: Simon Marchi , Simon Marchi , gdb-patches@sourceware.org References: <20200720204101.2849535-1-simon.marchi@efficios.com> <20200720204101.2849535-5-simon.marchi@efficios.com> <5b521483-2f09-3424-943d-40f83b3080af@palves.net> <82d8b01a-2b37-0b79-f657-1081375270ee@simark.ca> <0b8d1bd2-156f-626e-a6b8-813d69cc1340@simark.ca> Cc: Laurent From: Pedro Alves Message-ID: <27f7abde-0118-efee-6001-6b4b8f2d46a8@palves.net> Date: Wed, 5 Aug 2020 19:02:29 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: <0b8d1bd2-156f-626e-a6b8-813d69cc1340@simark.ca> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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: Wed, 05 Aug 2020 18:02:34 -0000 On 7/30/20 6:03 PM, Simon Marchi wrote: > On 2020-07-30 12:58 p.m., Simon Marchi wrote: >> It's down to: >> >> for (auto it = regcaches.begin (); it != regcaches.end ();) >> { >> if (it->second->target () == target) >> it = regcaches.erase (it); >> else >> it++; >> } > Ah, I see that you've provided me a patch for that too (I thought you only > did the multi-level map thing). Note that it's idiomatic to write ++it instead of it++, to avoid creating a temporary. It's possible that compilers nowadays optimize it away, but it still looks odd to not write ++it to me. Your code is: > > for (auto it = regcaches.begin (); it != regcaches.end ();) > { > if (it->second->target () == target) > { > delete it->second; > it = regcaches.erase (it); > } > } > > I think you are missing an it++ in the else? Otherwise, when the target doesn't > match, we'll get into an infinite loop I presume. Yes, I was. I didn't notice because I jumped straight to the multi-map patch on top, which deletes that code, IIRC. Thanks, Pedro Alves