From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.polymtl.ca (smtp.polymtl.ca [132.207.4.11]) by sourceware.org (Postfix) with ESMTPS id 2DF733858D29 for ; Mon, 22 Mar 2021 18:11:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 2DF733858D29 Received: from simark.ca (simark.ca [158.69.221.121]) (authenticated bits=0) by smtp.polymtl.ca (8.14.7/8.14.7) with ESMTP id 12MIBSO4025241 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 22 Mar 2021 14:11:33 -0400 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp.polymtl.ca 12MIBSO4025241 Received: from [10.0.0.11] (192-222-157-6.qc.cable.ebox.net [192.222.157.6]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPSA id B79F71E54D; Mon, 22 Mar 2021 14:11:28 -0400 (EDT) Subject: Re: [PATCH 1/3] gdb: remove unpush_target free function To: "Aktemur, Tankut Baris" Cc: "gdb-patches@sourceware.org" References: <20210322032027.3397705-1-simon.marchi@polymtl.ca> From: Simon Marchi Message-ID: <012ba9c6-313c-fd58-93dc-5781ec73403a@polymtl.ca> Date: Mon, 22 Mar 2021 14:11:28 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Poly-FromMTA: (simark.ca [158.69.221.121]) at Mon, 22 Mar 2021 18:11:29 +0000 X-Spam-Status: No, score=-10.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, 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: Mon, 22 Mar 2021 18:11:38 -0000 On 2021-03-22 1:25 p.m., Simon Marchi via Gdb-patches wrote: >>> diff --git a/gdb/exec.c b/gdb/exec.c >>> index 544a05873f11..bcc54bd966fe 100644 >>> --- a/gdb/exec.c >>> +++ b/gdb/exec.c >>> @@ -671,7 +671,7 @@ program_space::remove_target_sections (void *owner) >>> continue; >>> >>> switch_to_inferior_no_thread (inf); >>> - unpush_target (&exec_ops); >>> + inf->unpush_target (&exec_ops); >>> } >>> } >>> } >> >> I think the purpose of the 'switch_to_inferior_no_thread' above >> was to unpush_target from the current inferior. It should be OK to >> remove the switch. > > In fact, unpush_target decrefs the target, which can cause its to be > closed. There are some target_ops::close methods which reference the > current_inferior (though I'm not sure that it's really appropriate for > them to do so). I've left the switch_to_inferior calls to be safe for > this reason. I'll add a note in the commit message to that effect. > > But I agree this is the right direction. Actually, since we know which target's close method will be called (the exec target) and we know that the exec target's close method doesn't care about the current inferior, I think it's safe indeed. I'll update the patch to remove the call. Simon