From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17217 invoked by alias); 27 Jun 2018 22:31:44 -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 17199 invoked by uid 89); 27 Jun 2018 22:31:43 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-24.7 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=registry, readers X-HELO: mail-wm0-f44.google.com Received: from mail-wm0-f44.google.com (HELO mail-wm0-f44.google.com) (74.125.82.44) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 27 Jun 2018 22:31:41 +0000 Received: by mail-wm0-f44.google.com with SMTP id z6-v6so19227918wma.0 for ; Wed, 27 Jun 2018 15:31:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=Vbu/+p67eE4SRM7CYkHcXljL+GLUiS5rGFPr44MNraQ=; b=Nj5r/twgMldZdeq/MOiPc2S68Z3raCC8giV2AP8bxVObDmYWh2MsCa11n6Jo5eMr7j fpnAmUtV9Gd9RKLhLF+gV2Mu+YVHFvkjbndae5i8ey/dvUuv4JToZ/69z++xa0KZyQRS DAQw10BhtJboevzrsPbd972sCgpRnlwmHv35VNSVpHveOaErWZTfMFqYx1h4DlQqSoJ3 PNBgz5lY9f2rox9dUxoPumwiFT1FEDukYR4yWyPmfhU8VXQVExYhnhfGzhL4Ux9vat84 86TCubEzOBdQRF5CIMAIvnNPeIseBtnjNjzM9f/w7fND8xdXaUMHkq2vkZsFvW29s1gb 9E4w== Return-Path: Received: from localhost (host81-140-212-80.range81-140.btcentralplus.com. [81.140.212.80]) by smtp.gmail.com with ESMTPSA id 74-v6sm10048134wmt.31.2018.06.27.15.31.38 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 27 Jun 2018 15:31:38 -0700 (PDT) Date: Wed, 27 Jun 2018 22:31:00 -0000 From: Andrew Burgess To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: Re: [RFA] Make dwarf2_free_objfile static Message-ID: <20180627223137.GD15881@embecosm.com> References: <20180605192227.5343-1-tom@tromey.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180605192227.5343-1-tom@tromey.com> X-Fortune: Yow! X-Editor: GNU Emacs [ http://www.gnu.org/software/emacs ] User-Agent: Mutt/1.9.2 (2017-12-15) X-IsSubscribed: yes X-SW-Source: 2018-06/txt/msg00674.txt.bz2 * Tom Tromey [2018-06-05 13:22:27 -0600]: > I noticed that dwarf2_free_objfile can be made static, by changing it > to be a registry cleanup function. This simplifies the code, as well, > because now symbol readers don't have to explicitly call it. > > Tested by the buildbot. > > gdb/ChangeLog > 2018-06-05 Tom Tromey > > * coffread.c (coff_symfile_finish): Update. > * xcoffread.c (xcoff_symfile_finish): Update. > * elfread.c (elf_symfile_finish): Update. > * symfile.h (dwarf2_free_objfile): Don't declare. > * dwarf2read.c (_initialize_dwarf2_read): Use > register_objfile_data_with_cleanup. > (dwarf2_free_objfile): Now static. Change signature. > --- > gdb/ChangeLog | 10 ++++++++++ > gdb/coffread.c | 2 -- > gdb/dwarf2read.c | 12 ++++++------ > gdb/elfread.c | 1 - > gdb/symfile.h | 2 -- > gdb/xcoffread.c | 2 -- > 6 files changed, 16 insertions(+), 13 deletions(-) > > diff --git a/gdb/coffread.c b/gdb/coffread.c > index bc266fb60e3..30583e1dda4 100644 > --- a/gdb/coffread.c > +++ b/gdb/coffread.c > @@ -766,8 +766,6 @@ coff_symfile_finish (struct objfile *objfile) > { > /* Let stabs reader clean up. */ > stabsread_clear_cache (); > - > - dwarf2_free_objfile (objfile); > } > > > diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c > index 1cabfbb0d45..55377dc1004 100644 > --- a/gdb/dwarf2read.c > +++ b/gdb/dwarf2read.c > @@ -25003,13 +25003,13 @@ free_one_cached_comp_unit (struct dwarf2_per_cu_data *target_per_cu) > } > } > > -/* Release all extra memory associated with OBJFILE. */ > +/* Cleanup function for the dwarf2_per_objfile data. */ > > -void > -dwarf2_free_objfile (struct objfile *objfile) > +static void > +dwarf2_free_objfile (struct objfile *objfile, void *datum) > { > struct dwarf2_per_objfile *dwarf2_per_objfile > - = get_dwarf2_per_objfile (objfile); > + = (struct dwarf2_per_objfile *) datum; I don't know if we have a preference for static_cast over C style casting these days? Otherwise, FWIW, this looks like a nice clean up. Thanks, Andrew > > delete dwarf2_per_objfile; > } > @@ -25331,8 +25331,8 @@ show_check_physname (struct ui_file *file, int from_tty, > void > _initialize_dwarf2_read (void) > { > - > - dwarf2_objfile_data_key = register_objfile_data (); > + dwarf2_objfile_data_key > + = register_objfile_data_with_cleanup (nullptr, dwarf2_free_objfile); > > add_prefix_cmd ("dwarf", class_maintenance, set_dwarf_cmd, _("\ > Set DWARF specific variables.\n\ > diff --git a/gdb/elfread.c b/gdb/elfread.c > index 0fe2adbd4d2..358ec77b35b 100644 > --- a/gdb/elfread.c > +++ b/gdb/elfread.c > @@ -1333,7 +1333,6 @@ elf_new_init (struct objfile *ignore) > static void > elf_symfile_finish (struct objfile *objfile) > { > - dwarf2_free_objfile (objfile); > } > > /* ELF specific initialization routine for reading symbols. */ > diff --git a/gdb/symfile.h b/gdb/symfile.h > index d9185092eec..62072b104cc 100644 > --- a/gdb/symfile.h > +++ b/gdb/symfile.h > @@ -614,8 +614,6 @@ extern bool dwarf2_initialize_objfile (struct objfile *objfile, > extern void dwarf2_build_psymtabs (struct objfile *); > extern void dwarf2_build_frame_info (struct objfile *); > > -void dwarf2_free_objfile (struct objfile *); > - > /* From mdebugread.c */ > > extern void mdebug_build_psymtabs (minimal_symbol_reader &, > diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c > index 7b9694bcff9..79b1df70fd0 100644 > --- a/gdb/xcoffread.c > +++ b/gdb/xcoffread.c > @@ -1959,8 +1959,6 @@ xcoff_symfile_finish (struct objfile *objfile) > inclTable = NULL; > } > inclIndx = inclLength = inclDepth = 0; > - > - dwarf2_free_objfile (objfile); > } > > > -- > 2.13.6 >