From patchwork Wed Jul 10 15:39:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 33654 Received: (qmail 124563 invoked by alias); 10 Jul 2019 15:39:53 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 124544 invoked by uid 89); 10 Jul 2019 15:39:52 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-22.3 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.1 spammy=HContent-Transfer-Encoding:8bit X-HELO: rock.gnat.com Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 10 Jul 2019 15:39:51 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 5286C561DB; Wed, 10 Jul 2019 11:39:50 -0400 (EDT) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id MclN85ZIvsS7; Wed, 10 Jul 2019 11:39:50 -0400 (EDT) Received: from murgatroyd.Home (97-122-178-82.hlrn.qwest.net [97.122.178.82]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by rock.gnat.com (Postfix) with ESMTPSA id F200656128; Wed, 10 Jul 2019 11:39:49 -0400 (EDT) From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH 2/9] Change solib-darwin.c to use type-safe registry Date: Wed, 10 Jul 2019 09:39:40 -0600 Message-Id: <20190710153947.25721-3-tromey@adacore.com> In-Reply-To: <20190710153947.25721-1-tromey@adacore.com> References: <20190710153947.25721-1-tromey@adacore.com> MIME-Version: 1.0 This changes solib-darwin.c to use the type-safe registry. gdb/ChangeLog 2019-07-10 Tom Tromey * solib-darwin.c (struct darwin_info): Add initializers. (solib_darwin_pspace_data): Change type. (darwin_pspace_data_cleanup): Remove. (get_darwin_info, _initialize_darwin_solib): Update. --- gdb/ChangeLog | 7 +++++++ gdb/solib-darwin.c | 24 +++++------------------- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/gdb/solib-darwin.c b/gdb/solib-darwin.c index 65a5b9afca0..443ebb64a47 100644 --- a/gdb/solib-darwin.c +++ b/gdb/solib-darwin.c @@ -73,20 +73,14 @@ struct gdb_dyld_all_image_infos struct darwin_info { /* Address of structure dyld_all_image_infos in inferior. */ - CORE_ADDR all_image_addr; + CORE_ADDR all_image_addr = 0; /* Gdb copy of dyld_all_info_infos. */ - struct gdb_dyld_all_image_infos all_image; + struct gdb_dyld_all_image_infos all_image {}; }; /* Per-program-space data key. */ -static const struct program_space_data *solib_darwin_pspace_data; - -static void -darwin_pspace_data_cleanup (struct program_space *pspace, void *arg) -{ - xfree (arg); -} +static program_space_key solib_darwin_pspace_data; /* Get the current darwin data. If none is found yet, add it now. This function always returns a valid object. */ @@ -96,15 +90,11 @@ get_darwin_info (void) { struct darwin_info *info; - info = (struct darwin_info *) program_space_data (current_program_space, - solib_darwin_pspace_data); + info = solib_darwin_pspace_data.get (current_program_space); if (info != NULL) return info; - info = XCNEW (struct darwin_info); - set_program_space_data (current_program_space, - solib_darwin_pspace_data, info); - return info; + return solib_darwin_pspace_data.emplace (current_program_space); } /* Return non-zero if the version in dyld_all_image is known. */ @@ -691,10 +681,6 @@ struct target_so_ops darwin_so_ops; void _initialize_darwin_solib (void) { - solib_darwin_pspace_data - = register_program_space_data_with_cleanup (NULL, - darwin_pspace_data_cleanup); - darwin_so_ops.relocate_section_addresses = darwin_relocate_section_addresses; darwin_so_ops.free_so = darwin_free_so; darwin_so_ops.clear_solib = darwin_clear_solib;