From patchwork Wed Apr 25 19:39:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 26985 Received: (qmail 86088 invoked by alias); 25 Apr 2018 19:40:16 -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 86026 invoked by uid 89); 25 Apr 2018 19:40:15 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-22.2 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_STOCKGEN, UNWANTED_LANGUAGE_BODY autolearn=ham version=3.3.2 spammy=poisoned, constructible, 5089 X-HELO: sessmg22.ericsson.net Received: from sessmg22.ericsson.net (HELO sessmg22.ericsson.net) (193.180.251.58) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 25 Apr 2018 19:40:13 +0000 Received: from ESESSHC009.ericsson.se (Unknown_Domain [153.88.183.45]) by sessmg22.ericsson.net (Symantec Mail Security) with SMTP id 1D.0D.29340.A99D0EA5; Wed, 25 Apr 2018 21:40:10 +0200 (CEST) Received: from ESESSMR501.ericsson.se (153.88.183.108) by ESESSHC009.ericsson.se (153.88.183.45) with Microsoft SMTP Server (TLS) id 14.3.382.0; Wed, 25 Apr 2018 21:40:09 +0200 Received: from ESESBMB503.ericsson.se (153.88.183.170) by ESESSMR501.ericsson.se (153.88.183.108) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3; Wed, 25 Apr 2018 21:40:09 +0200 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (153.88.183.157) by ESESBMB503.ericsson.se (153.88.183.170) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3 via Frontend Transport; Wed, 25 Apr 2018 21:40:09 +0200 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from elxacz23q12.ericsson.se (129.192.64.65) by MW2PR1501MB2011.namprd15.prod.outlook.com (2603:10b6:302:c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.696.15; Wed, 25 Apr 2018 19:40:06 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 2/2] Use XOBNEW when possible Date: Wed, 25 Apr 2018 15:39:43 -0400 Message-ID: <1524685183-5553-2-git-send-email-simon.marchi@ericsson.com> In-Reply-To: <1524685183-5553-1-git-send-email-simon.marchi@ericsson.com> References: <1524685183-5553-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 X-ClientProxiedBy: YTOPR0101CA0063.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00:14::40) To MW2PR1501MB2011.namprd15.prod.outlook.com (2603:10b6:302:c::11) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:MW2PR1501MB2011; X-Microsoft-Exchange-Diagnostics: 1; MW2PR1501MB2011; 3:FKDJK9RoVvveG2Ebnini4xMUIZdvqY2ynhqhFrUciwIK5k+SAtPRqFZ//depcbp1vQuuO/98G0lyw5bn3KCrWHWa3Ya3K9ANilsKlfm7eAsNQEEmYhYhXwnx5mNgusT0F/XluIOyTTWKvL0F6CAg2/5ALzkRuPrHh2bWO7mAbW3vtA3c1oO5biOQCYCro8u0MeZ8JBzXjScePpjtPSydD44erx/ehlDCq61n9/gk+P3P14R4nN4hOyTW3nYHkN8e; 25:gTvUHgvVYTA7QG/gSO+v6rBvPrZILb3C9K/gl2dGJNc+dAB5OfUsYjNDckjloO3tGdu2mWYYT0DevFrmH+IB3efEXKm3fcN2eOpaZ52LhtySwiWvx3vp9Ic3c/rkRG2h/7e1XKk08rXeQgzptgjl5OLfqoyYHrssKO8hLvzqKwSMf3BJbSSb2MkMUNujaDz0r5nDinoxtVaQx8CUk3CA5h6U8bhJBYAE96khL+26eXTHo8M1lFGQrm+It6EszIlcR3oevhRtD+zCdDJPvrPBHRf9csT5S1K6pfixP+cl7PC3+AhSrr0NAIgtAllFRH0i2x+sGxf4AF8i6nezdsGtPg==; 31:avY79iTpTQK3nlclXg6mtdqBesV93jImz7Gr9Nw2HnYjQF1MYzeXPcjJGplNg3jWDCJIGt+pkBiOrEKEJ08pL8wDhSBTo3n1GuaEGdkQAInQxJvBC4aoGrlPgrtcniQfx7NOCE6m6xecX9+umWK7XJ/05SWJjvV7Rp37/HMEZl5eA0XWYUy9PzheBcmU8ssgt4Pb1DJzgRpv9iCMVaKhtScrfedSmt7A01L4Wv2BlPg= X-MS-TrafficTypeDiagnostic: MW2PR1501MB2011: X-Microsoft-Exchange-Diagnostics: 1; MW2PR1501MB2011; 20:7HYdzdOa6OCJfYhurtaxiZVnkIsQZ+UvqFlu7Zz2RlxCA1qhOTesCOT8p21LhJVQqtk/4IoeLyddxugTBs4KR/JsVnA/oc2mUTPSrZUrJwkkGHc2tLoWcqDOVNMl5OLJxm6rTA4Mw/q21Y4qv655qDARPH3a8+eLq6JM3Gccd2UPOaJM0aV/uP0pif+Dn9P8tHVxy+VGQPkYT7iFDXRm4/InF+BPc87dcDtIxK/IE9a8l8dopSuRlQ7hxoKeJvV1aC+17SQtQiex4P7JcAfGxWCPvePBL2txLDDHyFZr9unpw5zD+y/58zAL8D2KtRSU34Ih5Di0uekeP3qX/J/Shswic6B8NPqb82E3AW0hSsf+U/Phaxm+nWDWqL9iwlvei7FsVcs8kiILPkbfpOj8W9HfZ6bbyT9vZ9m7S6zWayxpnHDC9IuYMsAOBhvLKxNpmjjHeQW+JElo+XbGWpqgGA48xvD25y0SRr1Db/20sOHT89Jj3a848fiyrU6UxmVk; 4:HgBs467jcoxr06PQNDhXLbwh1Wq6dpRgSUF3yK/+Fdc+5cJET8yMrcxuWtNtqUBVJb9wwJqiEmsIMPMupM+Ra2fDBJyoEiVUDDyyBtBFDqmDbT78vABOZ7j/8LYfozls7g2EaoJ6AgxUfXbDS7fw0zq88DeYnAkVvjf0fvJvd/eWbtgEsmm6VwWqwApDZB2yW6e6VHnG/dS68qg0hCczGg+M/vcKsayhfznTaq6VbYfKYC25HCR0bU6abmwUh2ggL4wD666KvoliwIyn1dTPBA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(3231232)(944501410)(52105095)(6041310)(20161123558120)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(6072148)(201708071742011); SRVR:MW2PR1501MB2011; BCL:0; PCL:0; RULEID:; SRVR:MW2PR1501MB2011; X-Forefront-PRVS: 06530126A4 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(346002)(366004)(376002)(39380400002)(39860400002)(189003)(199004)(54534003)(36756003)(6116002)(2351001)(50466002)(81166006)(81156014)(446003)(76176011)(386003)(4326008)(69596002)(44832011)(3846002)(25786009)(50226002)(11346002)(68736007)(476003)(2616005)(48376002)(51416003)(8936002)(6506007)(8676002)(486006)(956004)(52116002)(59450400001)(26005)(97736004)(47776003)(478600001)(6486002)(16526019)(6512007)(107886003)(186003)(575784001)(66066001)(316002)(106356001)(305945005)(2361001)(53936002)(2906002)(5660300001)(16586007)(105586002)(6666003)(53416004)(7736002)(6916009)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:MW2PR1501MB2011; H:elxacz23q12.ericsson.se; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MW2PR1501MB2011; 23:qIj1Xz6KMPuJGfOFe1NFQv1kt97kmFkgrKq7ibb?= =?us-ascii?Q?Nk0iT4+OBKHFPFfCbeQy35c4k9nCejQ8ujJtoq/LUZ356MjFipY5vfiKjaKO?= =?us-ascii?Q?QJjMJsNfjUR6UzsKwgVMby2qmXCnJ+cRIQITGIyH1KjBF54g8amHCPQnxzxo?= =?us-ascii?Q?PuI/cOHgkUX9QGi0/uRM8TZoVsTpV3IIXxHwQlXF95JJQhMzKWpghAN5XHoX?= =?us-ascii?Q?e8Ea6FgYS+awS0Wng61MabkutZqsAUG8bMm1cj32sWkpxzWfNFQ7gPB2fFGU?= =?us-ascii?Q?bs9aIBzSfpauIzo56J2rE1+VVvd4b1YhP/a4V168iNF9FWSgYiRnmLj+iYj9?= =?us-ascii?Q?YtzCYrFFxbEXnBRikReiJqxBiLBNIdqX+ubiWxToDIKX/IarkX+mUJUmIUie?= =?us-ascii?Q?OiJctmtDaBTPOVTT+fr64z2/2K/Ez5W57Q9s9EGh8dTA9I959tFgXX0x7eW5?= =?us-ascii?Q?T+QyFyTX5Y0ROeMTtzNKZtvNUnMb60zCDfCiWKWj54dDyc9ccGnzJp4Cqy2n?= =?us-ascii?Q?DJeyhmrZVrTeA1MG7qLTmso8yX5uoeaAuf+22dhfkLakY2ygRAVlvo+Q3XOk?= =?us-ascii?Q?uKeY3hQySvj1fQFqebwZU9ejGm+XYAEg3Ms9eZjYsggS51uaBgUVOPY1uJkZ?= =?us-ascii?Q?qB+hUTr0yBvLOXkGaXe9kTvasJ7W+MoSMUXKk/xYpa2OsX3LD2QVq588uDLk?= =?us-ascii?Q?n9xmDI+oZQQsP/yes8ynJRnWycsgoHdpKV52DjBloqOdPm49je6tvuBpPrI3?= =?us-ascii?Q?C+xj0/FjRaHzWnn6Di1SVB2XR1m0u1jjoXczY5uy0x5hr9+2q1TBqsuElfGi?= =?us-ascii?Q?OuKh//SS3j5mG8bAOkW6SCBAQa3eCQzNXC1BJUKr+Ilz4wnz8mj5tzBdph1L?= =?us-ascii?Q?E3sgKoxb8r/AEoLFVsCVueC9peEuEeW6QjtWaX+mazbjqGHp7abBQqxcfRff?= =?us-ascii?Q?oKPCFgpwOoNHH8XTfxpN4Va2IbI/m0mqQ1X9qKXf7UA3g/Tr8eTh0OuGKtR+?= =?us-ascii?Q?DfQ7Sx4x4rzvpAe3HkZDS0skn+AucuGyuXBe5n4N7NJWort0hwV5FzlFH+Le?= =?us-ascii?Q?K3dUDG/bmtak74KuxFowP0eBHtEqQ0n5V7mNPm77s7dKwekIp7F3QAlx3H6B?= =?us-ascii?Q?GBDb+JpRah9JbKKHSlSmb8szWS8aZQil60tZ6wU++xeUJogAE31nr7pVdC87?= =?us-ascii?Q?hGsd4XSuIwD2DweQ7vrhMhJDWjM5E/zbiB0Lm5E+FYDvenkaxMXgs2dZ0ofI?= =?us-ascii?Q?dGyOElzpZlWshlviOKR1+iAVNjz1TDKRr10GpqNR2zXMRCJYfbc7B7hxCUrf?= =?us-ascii?Q?ZyVImRmon0Fx9sdyccUf1DFXsj1nJcIAYJo4DQFovNwOSxEEZa8ANfv94nb7?= =?us-ascii?Q?QpcFIuJ/VaCTTYLNS+OgO0uYGAqA=3D?= X-Microsoft-Antispam-Message-Info: H2JT6bOfllTMTifqPwHwbOWSPBF8owcxbsmanhDGBsh66N0/Hv5tjmebQUpOuITZ2jX5hPXiG7sANgDSfS7cf0DHmuyVdPCamfY+ApFFIVCkwac/r1S2jXvArZLpNy40+GDTzsZ+1T6nT/M2JfYif8poRjuJ8x6KzEfz57yOHMJTwLWpRS9774gCLxdNehw1 X-Microsoft-Exchange-Diagnostics: 1; MW2PR1501MB2011; 6:r74QSYWTpl1itZWJ4kF8Yn2z2SQ2LH0Ptkc3GFNCy9/mUjaAr1MKvw90F2BuPF/XW978C2urfc5iMvOd8Tl9LzDXSGCTYbXAfHOAYA9oTnaVxmYirbTHOCSTYGtDG86/lz9KhMW+9C6khIYfS/Bm2YcyduKKRix5HmwViDmfYKJ2DIY/f+FB02evVLu5IIcC5A8icNoOLmtum7aoJwqarnLdJNRFFyiw/U7w0OW47E8bXdDYyHbZHdp6mHUfzMThici6tiJKmTNmYrD3hlBdALAlObcGaih1obytFirPSnQ0HGAbxDeb+4rqccA/i6vw+gqgXRoCk6i4JiFI/pUDzw47I/QQLF29YnBla6XqOctxRgnV9OoDog6gh2CZN6QMB7q4LACylQ8pah+FiuiLFstm61fp/tpnu/JQ7jZBBhC6eJxnsUp2fqzrJsN+UkRgmAS7ncx6deHIbDSq4PjP2Q==; 5:fORqRIF6uEybaicfxDAOqaKJdwyU6MEJ2OxZzQjJXokiJL3Ag8oUUnU7HqO8qSTTCnbiVDbJEHW2FtwFZ0Ov3/EVnlLm8PUheMMtNOrTajbn8d0qhgnrwkpTDKMkbO8qvLOLOqOW8S3WrN8siIk+JNaoGr/GE9WBKJSaZEFUKIo=; 24:P28XNlydoUYDfma4Cv9l/CztcsQoLQfIm+Ogrwf8IftftMbkEO4bMG4PJQIsW1Z2NszLFpLDXu84MlUvD++pfo0tQN7/89GX2ATHHa+rKGo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MW2PR1501MB2011; 7:JInriaPToKpJqIHg+BOrvrGZPGGxUAWHmOI/DHzVL6NegahP1ejQ1byyMCx6dy2+6nCOrpL17doOMDbZC0o7U3IQa1S6/qVVT4Gb3YvJCF03TfSSYca3QQK8xlvmpKajVd9WdFYp2HMSTxORBQ3XGxmnhz9ZeEwE12wKeuzoL0sUGYUo68obN2RG0Y19v9nxWsJOQ4GRAu7lKQCb4zY4+ZRH3/76BfWD2kW4Xvhh85hgGVb8qkF4bb/tf8p/vDVf X-MS-Office365-Filtering-Correlation-Id: cefc0748-28ce-4f3a-8d29-08d5aae45987 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2018 19:40:06.9895 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cefc0748-28ce-4f3a-8d29-08d5aae45987 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR1501MB2011 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes Since XOBNEW is now poisoned to prevent using it with non-trivially-constructible objects, it is worth using it over plain obstack_alloc. This patch changes the locations I could find where we can do that change easily. gdb/ChangeLog: * ada-lang.c (cache_symbol): Use XOBNEW/XOBNEWVEC. * dwarf2-frame.c (dwarf2_build_frame_info): Likewise. * hppa-tdep.c (hppa_init_objfile_priv_data): Likewise. * mdebugread.c (mdebug_build_psymtabs): Likewise. (add_pending): Likewise. (parse_symbol): Likewise. (parse_partial_symbols): Likewise. (psymtab_to_symtab_1): Likewise. (new_psymtab): Likewise. (elfmdebug_build_psymtabs): Likewise. * minsyms.c (terminate_minimal_symbol_table): Likewise. * objfiles.c (get_objfile_bfd_data): Likewise. (objfile_register_static_link): Likewise. * psymtab.c (allocate_psymtab): Likewise. * stabsread.c (read_member_functions): Likewise. * xcoffread.c (xcoff_end_psymtab): Likewise. --- gdb/ada-lang.c | 3 +-- gdb/dwarf2-frame.c | 3 +-- gdb/hppa-tdep.c | 6 ++---- gdb/mdebugread.c | 47 ++++++++++++++++------------------------------- gdb/minsyms.c | 6 ++---- gdb/objfiles.c | 9 ++------- gdb/psymtab.c | 4 +--- gdb/stabsread.c | 5 ++--- gdb/xcoffread.c | 3 +-- 9 files changed, 28 insertions(+), 58 deletions(-) diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index de20c43..8145480 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -4744,8 +4744,7 @@ cache_symbol (const char *name, domain_enum domain, struct symbol *sym, return; h = msymbol_hash (name) % HASH_SIZE; - e = (struct cache_entry *) obstack_alloc (&sym_cache->cache_space, - sizeof (*e)); + e = XOBNEW (&sym_cache->cache_space, cache_entry); e->next = sym_cache->root[h]; sym_cache->root[h] = e; e->name = copy diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c index 753ce1f..1a444fd 100644 --- a/gdb/dwarf2-frame.c +++ b/gdb/dwarf2-frame.c @@ -2205,8 +2205,7 @@ dwarf2_build_frame_info (struct objfile *objfile) fde_table.entries = NULL; /* Build a minimal decoding of the DWARF2 compilation unit. */ - unit = (struct comp_unit *) obstack_alloc (&objfile->objfile_obstack, - sizeof (struct comp_unit)); + unit = XOBNEW (&objfile->objfile_obstack, comp_unit); unit->abfd = objfile->obfd; unit->objfile = objfile; unit->dbase = 0; diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c index 84dbd66..c739410 100644 --- a/gdb/hppa-tdep.c +++ b/gdb/hppa-tdep.c @@ -205,11 +205,9 @@ hppa_symbol_address(const char *sym) static struct hppa_objfile_private * hppa_init_objfile_priv_data (struct objfile *objfile) { - struct hppa_objfile_private *priv; + hppa_objfile_private *priv + = XOBNEW (&objfile->objfile_obstack, hppa_objfile_private); - priv = (struct hppa_objfile_private *) - obstack_alloc (&objfile->objfile_obstack, - sizeof (struct hppa_objfile_private)); set_objfile_data (objfile, hppa_objfile_priv_data, priv); memset (priv, 0, sizeof (*priv)); diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c index c0bce55..2741512 100644 --- a/gdb/mdebugread.c +++ b/gdb/mdebugread.c @@ -356,9 +356,8 @@ mdebug_build_psymtabs (minimal_symbol_reader &reader, char *fdr_end; FDR *fdr_ptr; - info->fdr = (FDR *) obstack_alloc (&objfile->objfile_obstack, - (info->symbolic_header.ifdMax - * sizeof (FDR))); + info->fdr = (FDR *) XOBNEWVEC (&objfile->objfile_obstack, FDR, + info->symbolic_header.ifdMax); fdr_src = (char *) info->external_fdr; fdr_end = (fdr_src + info->symbolic_header.ifdMax * swap->external_fdr_size); @@ -508,9 +507,7 @@ add_pending (FDR *fh, char *sh, struct type *t) /* Make sure we do not make duplicates. */ if (!p) { - p = ((struct mdebug_pending *) - obstack_alloc (&mdebugread_objfile->objfile_obstack, - sizeof (struct mdebug_pending))); + p = XOBNEW (&mdebugread_objfile->objfile_obstack, mdebug_pending); p->s = sh; p->t = t; p->next = pending_list[f_idx]; @@ -1174,9 +1171,8 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend, SYMBOL_DOMAIN (s) = LABEL_DOMAIN; SYMBOL_ACLASS_INDEX (s) = LOC_CONST; SYMBOL_TYPE (s) = objfile_type (mdebugread_objfile)->builtin_void; - e = ((struct mdebug_extra_func_info *) - obstack_alloc (&mdebugread_objfile->objfile_obstack, - sizeof (struct mdebug_extra_func_info))); + e = XOBNEW (&mdebugread_objfile->objfile_obstack, + mdebug_extra_func_info); memset (e, 0, sizeof (struct mdebug_extra_func_info)); SYMBOL_VALUE_BYTES (s) = (gdb_byte *) e; e->numargs = top_stack->numargs; @@ -2372,8 +2368,7 @@ parse_partial_symbols (minimal_symbol_reader &reader, && (bfd_get_section_flags (cur_bfd, text_sect) & SEC_RELOC)) relocatable = 1; - extern_tab = (EXTR *) obstack_alloc (&objfile->objfile_obstack, - sizeof (EXTR) * hdr->iextMax); + extern_tab = XOBNEWVEC (&objfile->objfile_obstack, EXTR, hdr->iextMax); includes_allocated = 30; includes_used = 0; @@ -2415,10 +2410,8 @@ parse_partial_symbols (minimal_symbol_reader &reader, } /* Allocate the global pending list. */ - pending_list = - ((struct mdebug_pending **) - obstack_alloc (&objfile->objfile_obstack, - hdr->ifdMax * sizeof (struct mdebug_pending *))); + pending_list = XOBNEWVEC (&objfile->objfile_obstack, mdebug_pending *, + hdr->ifdMax); memset (pending_list, 0, hdr->ifdMax * sizeof (struct mdebug_pending *)); @@ -2659,8 +2652,7 @@ parse_partial_symbols (minimal_symbol_reader &reader, textlow, objfile->global_psymbols, objfile->static_psymbols); - pst->read_symtab_private = obstack_alloc (&objfile->objfile_obstack, - sizeof (struct symloc)); + pst->read_symtab_private = XOBNEW (&objfile->objfile_obstack, symloc); memset (pst->read_symtab_private, 0, sizeof (struct symloc)); save_pst = pst; @@ -3773,11 +3765,8 @@ parse_partial_symbols (minimal_symbol_reader &reader, /* Skip the first file indirect entry as it is a self dependency for source files or a reverse .h -> .c dependency for header files. */ pst->number_of_dependencies = 0; - pst->dependencies = - ((struct partial_symtab **) - obstack_alloc (&objfile->objfile_obstack, - ((fh->crfd - 1) - * sizeof (struct partial_symtab *)))); + pst->dependencies = XOBNEWVEC (&objfile->objfile_obstack, + partial_symtab *, (fh->crfd - 1)); for (s_idx = 1; s_idx < fh->crfd; s_idx++) { RFDT rh; @@ -4064,10 +4053,9 @@ psymtab_to_symtab_1 (struct objfile *objfile, { /* Make up special symbol to contain procedure specific info. */ - struct mdebug_extra_func_info *e = - ((struct mdebug_extra_func_info *) - obstack_alloc (&mdebugread_objfile->objfile_obstack, - sizeof (struct mdebug_extra_func_info))); + mdebug_extra_func_info *e + = XOBNEW (&mdebugread_objfile->objfile_obstack, + mdebug_extra_func_info); struct symbol *s = new_symbol (MDEBUG_EFI_SYMBOL_NAME); memset (e, 0, sizeof (struct mdebug_extra_func_info)); @@ -4750,8 +4738,7 @@ new_psymtab (const char *name, struct objfile *objfile) /* Keep a backpointer to the file's symbols. */ - psymtab->read_symtab_private = obstack_alloc (&objfile->objfile_obstack, - sizeof (struct symloc)); + psymtab->read_symtab_private = XOBNEW (&objfile->objfile_obstack, symloc); memset (psymtab->read_symtab_private, 0, sizeof (struct symloc)); CUR_BFD (psymtab) = cur_bfd; DEBUG_SWAP (psymtab) = debug_swap; @@ -4877,9 +4864,7 @@ elfmdebug_build_psymtabs (struct objfile *objfile, minimal_symbol_reader reader (objfile); - info = ((struct ecoff_debug_info *) - obstack_alloc (&objfile->objfile_obstack, - sizeof (struct ecoff_debug_info))); + info = XOBNEW (&objfile->objfile_obstack, ecoff_debug_info); if (!(*swap->read_debug_info) (abfd, sec, info)) error (_("Error reading ECOFF debugging information: %s"), diff --git a/gdb/minsyms.c b/gdb/minsyms.c index 9d23c4f..db3a912 100644 --- a/gdb/minsyms.c +++ b/gdb/minsyms.c @@ -1427,10 +1427,8 @@ void terminate_minimal_symbol_table (struct objfile *objfile) { if (! objfile->per_bfd->msymbols) - objfile->per_bfd->msymbols - = ((struct minimal_symbol *) - obstack_alloc (&objfile->per_bfd->storage_obstack, - sizeof (struct minimal_symbol))); + objfile->per_bfd->msymbols = XOBNEW (&objfile->per_bfd->storage_obstack, + minimal_symbol); { struct minimal_symbol *m diff --git a/gdb/objfiles.c b/gdb/objfiles.c index 98e81c4..2ec358a 100644 --- a/gdb/objfiles.c +++ b/gdb/objfiles.c @@ -147,11 +147,7 @@ get_objfile_bfd_data (struct objfile *objfile, struct bfd *abfd) set_bfd_data (abfd, objfiles_bfd_data, storage); } else - { - storage = (objfile_per_bfd_storage *) - obstack_alloc (&objfile->objfile_obstack, - sizeof (objfile_per_bfd_storage)); - } + storage = XOBNEW (&objfile->objfile_obstack, objfile_per_bfd_storage); /* objfile_per_bfd_storage is not trivially constructible, must call the ctor manually. */ @@ -269,8 +265,7 @@ objfile_register_static_link (struct objfile *objfile, slot = htab_find_slot (objfile->static_links, &lookup_entry, INSERT); gdb_assert (*slot == NULL); - entry = (struct static_link_htab_entry *) obstack_alloc - (&objfile->objfile_obstack, sizeof (*entry)); + entry = XOBNEW (&objfile->objfile_obstack, static_link_htab_entry); entry->block = block; entry->static_link = static_link; *slot = (void *) entry; diff --git a/gdb/psymtab.c b/gdb/psymtab.c index ac0ee0a..fa59ee2 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -1805,9 +1805,7 @@ allocate_psymtab (const char *filename, struct objfile *objfile) objfile->free_psymtabs = psymtab->next; } else - psymtab = (struct partial_symtab *) - obstack_alloc (&objfile->objfile_obstack, - sizeof (struct partial_symtab)); + psymtab = XOBNEW (&objfile->objfile_obstack, partial_symtab); memset (psymtab, 0, sizeof (struct partial_symtab)); psymtab->filename diff --git a/gdb/stabsread.c b/gdb/stabsread.c index 0017f18..2149014 100644 --- a/gdb/stabsread.c +++ b/gdb/stabsread.c @@ -2731,9 +2731,8 @@ read_member_functions (struct field_info *fip, const char **pp, xfree (main_fn_name); } - new_fnlist->fn_fieldlist.fn_fields = (struct fn_field *) - obstack_alloc (&objfile->objfile_obstack, - sizeof (struct fn_field) * length); + new_fnlist->fn_fieldlist.fn_fields + = XOBNEWVEC (&objfile->objfile_obstack, fn_field, length); memset (new_fnlist->fn_fieldlist.fn_fields, 0, sizeof (struct fn_field) * length); for (i = length; (i--, sublist); sublist = sublist->next) diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c index 8c707aa..4f9b315 100644 --- a/gdb/xcoffread.c +++ b/gdb/xcoffread.c @@ -2097,8 +2097,7 @@ xcoff_end_psymtab (struct objfile *objfile, struct partial_symtab *pst, struct partial_symtab *subpst = allocate_psymtab (include_list[i], objfile); - subpst->read_symtab_private = obstack_alloc (&objfile->objfile_obstack, - sizeof (struct symloc)); + subpst->read_symtab_private = XOBNEW (&objfile->objfile_obstack, symloc); ((struct symloc *) subpst->read_symtab_private)->first_symnum = 0; ((struct symloc *) subpst->read_symtab_private)->numsyms = 0; subpst->textlow = 0;