From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 91795 invoked by alias); 7 Jan 2018 16:55:19 -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 91786 invoked by uid 89); 7 Jan 2018 16:55:19 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_PASS autolearn=ham version=3.3.2 spammy=H*r:ip*153.88.183.24, Hx-spam-relays-external:153.88.183.24, H*RU:153.88.183.24 X-HELO: sesbmg22.ericsson.net Received: from sesbmg22.ericsson.net (HELO sesbmg22.ericsson.net) (193.180.251.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 07 Jan 2018 16:55:17 +0000 Received: from ESESSHC002.ericsson.se (Unknown_Domain [153.88.183.24]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id 72.08.27591.2F0525A5; Sun, 7 Jan 2018 17:55:14 +0100 (CET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.24) with Microsoft SMTP Server (TLS) id 14.3.352.0; Sun, 7 Jan 2018 17:55:14 +0100 Received: from [10.0.0.110] (192.222.251.162) by DB4PR07MB315.eurprd07.prod.outlook.com (2a01:111:e400:982f::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.407.1; Sun, 7 Jan 2018 16:55:12 +0000 Subject: Re: [RFA 2/6] Allocate abbrev_table with new From: Simon Marchi To: Tom Tromey , References: <20180106002621.21099-1-tom@tromey.com> <20180106002621.21099-3-tom@tromey.com> Message-ID: <67e2a403-b51f-8ac3-2bae-0973a2e22ee4@ericsson.com> Date: Sun, 07 Jan 2018 16:55:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-ClientProxiedBy: BN6PR19CA0077.namprd19.prod.outlook.com (2603:10b6:404:133::15) To DB4PR07MB315.eurprd07.prod.outlook.com (2a01:111:e400:982f::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4c309ca2-520b-47ee-4de3-08d555ef6b33 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020020)(5600026)(4604075)(4534040)(4602075)(4627136)(201703031133081)(201702281549075)(2017052603307)(7153060)(7193020);SRVR:DB4PR07MB315; X-Microsoft-Exchange-Diagnostics: 1;DB4PR07MB315;3:MLKcuj0tkoX8QrhhAe+XJQxQQa9r2Mbwqg8+kHsH/E/sMBOw5lOt0dSzLYXJMY1szA3d8KMDy4ffcXDrvX8CR8b2URUqKBi7mjkXqDdUoY7B3iXAauDUOfH8ZlJ7YgJmyUp4oEASzpwWXydYbFe1V+JOdirsHQe3umL1yCL78Nr5wE954c+H05LUZevR43L9EHO8b+a9peClbhyfGY8vpZ3D3X6YqM2z75aZs5YdFG2bTKdi0SLEodq6GqhSosPD;25:JwPkg7AXCO2NAbIqISG3dVNHzCxIh7oWPnx5j/CWxr1O52i3Nr09wmASWvfBUBRStlQktCR9PVdwcLdAqwYYbuP/pQmNvq1+4OMjAcPm3GyomKEp6/kJ32ilZI/Jb9T5pQUN4GlGFXyE6HCusgrJx49ErP/13ItDl1GRBXNrzQ5vAOa3AcRauJ+svz32zZNJLV04rB/GYk7STrzqsA+/kCyQJVjWBiR/ygnUp0P8tGniucL/Mw1BFuh4RVR3AY3RHT4LfymRtzBbtarr8ERIxI6d9C/tLyrTXaBzaSb0siNxdMy0Kjzofmwd1HDglaciD6dk6/84mFHX3Fx+zR5jEw==;31:p19q3XvACVkzTvia7v9aXV722bmnkAhE2pwJOOEc6Xav5lPXm6am7PcrEDOw7j6XB81/nwYlKopm6zaMf6k30nbU4PU3PzZkzHNYIf3BSMel8jvOa/sI2Ax9Jd/JhYUMRbP7dp2sx0cWzXZv+HQdBu4aJbvv1pNMd4L+tiN+daPDt5DK2GGoB8vOj0DFyufo/WPo6Z5oPT9T9mWNfwC4eOon76sFL5SVpoPiybRaZPQ= X-MS-TrafficTypeDiagnostic: DB4PR07MB315: X-Microsoft-Exchange-Diagnostics: 1;DB4PR07MB315;20:Whd7iMGJpYfV0Ikx5EosTM2lfim8bzgoBjpWklQRDtehaokaRPqFEjx7HMRTEvXGTLLOw/dhvdUhij3+m4yq3VwANHbVWQPQAT71knWbKLlFgZQXoUHqY8vo/eezIzXoboGSErr5SZultirEBWZVnsKWz9Jjt9ZoqJeuITGSxhzmQIpdmq2gq17rO1JW8zGdkfYSgyCzUXMSDFCJ866kSwUSBhNEI3Pg1w1JIrRsVd8W7I45y12ogkV4TwOXSpaCSueT9GVgLhorx3bRUgPODKkONJ1W3ZzhbeFCsEQx2lC4uqkdfxZ9fZQmkVoFDnv0v1S4mWSbePVGD49Bzbo4IJiQmBVkUjoFSdkoOBHfYyPE3feb/rdZv6HSQEV4RpNMVcLuquVrROdVt4zFUNBJdrLOFu4XB6NOwjc+KM2TQFktVyLkEyFqIYwewrGGKy+OYKcKFyb2bdbOJZTP6/ZA7viS9WQpmNCHHErxgito+GpDD8th5hf1qfEvTzVkfUN4;4:rWPMufEvgam6L5JLy56dTCjk92CZT33EdJrDL2+BY4El7pjyAlgW0nn7aTHkT1cFxWGsRzc/BgtAqiGuhLJbRI8qOIO+hwaqHcfeHSf3JGS6ZeJjcvc7paIE/scRUgxKs9p7hrLnm8M3ipZkIK/6Fh/KtsfvNuYCalCF4BW5U1fOAk05fR+75KNORaehJNcBqL7txVLsaFEZucyREHd90jWBV/d06ls04JIRBPjD7QOUoBkqGPjZUUAIb6sqDKOlLxqyYINVlxenRX3qAKGfMiadhM9gHKnVhSYln7i5RRq8nr9kIM8Emy1V5mY6+V0QMXGn33woJXT/8pmAGcc1fXYq10MBiSEsPXIxi7xZxSk= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(60795455431006)(166708455590820); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040470)(2401047)(8121501046)(5005006)(3002001)(3231023)(944501075)(10201501046)(93006095)(93001095)(6041268)(20161123562045)(20161123564045)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:DB4PR07MB315;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:DB4PR07MB315; X-Forefront-PRVS: 0545EFAC9A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(396003)(39380400002)(346002)(366004)(376002)(39860400002)(189003)(51444003)(199004)(24454002)(377424004)(76104003)(2486003)(8936002)(2906002)(25786009)(83506002)(81156014)(64126003)(97736004)(52146003)(31686004)(6306002)(65956001)(66066001)(23676004)(65826007)(16526018)(6486002)(31696002)(2950100002)(6666003)(5660300001)(47776003)(52116002)(68736007)(77096006)(81166006)(36756003)(966005)(8676002)(105586002)(76176011)(50466002)(316002)(86362001)(386003)(230700001)(53546011)(3846002)(229853002)(65806001)(58126008)(53936002)(6116002)(7736002)(106356001)(305945005)(6246003)(478600001)(16576012);DIR:OUT;SFP:1101;SCL:1;SRVR:DB4PR07MB315;H:[10.0.0.110];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjRQUjA3TUIzMTU7MjM6Q0RPRVNSdG5udkJPSHJIWXVYK2NOZ1QwR2NH?= =?utf-8?B?ckx6ZitTQVkrbm5pUHcyYnlZakhGa1ZoMXJmNVZpVDJHeEdkWHZrSXEvdzk1?= =?utf-8?B?aTFIaTVlTEhNZFR5b01uY1RWdDhiOTh5MUw3amxCQzNSOXhmM1JMYzZQc3Y2?= =?utf-8?B?TVQ5WGpSTkJqbktMSGdzOFJQbGZjZXhGcUJvR3oyVHJWZTdRRHFURFZqT1dk?= =?utf-8?B?L1hvS0FhZkJjanJXSi9HMFhnV0dvQ05Hd0ZHajZaSWQ5OHY3VXYwYWtCN3U0?= =?utf-8?B?b1l3YTRBNktlRUZWTDFndGprMDczeWpWU3B6NW9teE1ibmhlcHN3N3JqWHNG?= =?utf-8?B?a2htVGM3MlJiV1o5WXRqWDhydm1HVXUyUEhhNnBzRnNsL2JpdXFJamdndEJ6?= =?utf-8?B?R1VaaDRQdVpid2VaSHRwblN0VzlRY1lsL2t6eEFwMkI5R1Q4bC8wQ3Npa242?= =?utf-8?B?QWpnZTd0eDdlenA5Y016L1ROR0NGT0R5MU82bzhaeTFLUkJRcGpHbkQ0ODhF?= =?utf-8?B?cGtVSzRYL2JUZEJsYzJlRDJ5MU9CTVBINFJuZjVLUFpEVlRNSGQ2UGV5YmND?= =?utf-8?B?TTZIcEdKOGR2V3B6dnFLYXdmWWRFL2FTWHFYanYyQkhzdjdpYjVHbnd5RzBy?= =?utf-8?B?UGxmV3E1dG5XYSswWEVLTWh3LzRZbmZtMm1RNXpreG45T3VyRDhKMS9uOVlz?= =?utf-8?B?TzIzS0ZVM0RRMXFMZmx1Zkw1UUhQMDFWZ2xYNmlpZkdMRkJoLzJiRms5ZEto?= =?utf-8?B?NEQ0Ris0bVgzZVlnMmoyQUdFVGVaN1NrWXp6YUJka2NGK3l3T29tQVBiYVVi?= =?utf-8?B?MENRUjdnd1dIa0g2VFRGb1pLeXFOOTZGYUduR2l1UEx4NmR4SXVHY1ZIWGll?= =?utf-8?B?ZkViZzlIc1VrWnFja3lzTm5hTnNQQ2MxbEg2SkRCV3lEbFRBMEJ2dk1RVmMv?= =?utf-8?B?VDFyQnBVZStaYURqcTBPWE5rTEljaTJPWnQvak43Y0d4SUpKRWdSQUFsTXpu?= =?utf-8?B?UjBwSmpabzZOTFc1b3k2MnVtRFRBUGEwMm44RHZiOUU3ZndQWks4ZVpkYnpi?= =?utf-8?B?OWxmMldTUzlHTzBTZ1dFY3U5T2ZBWVM4Q0pGQ0NNUnNKMVVHN0NMZzFCSGJr?= =?utf-8?B?R3p1NzhIVVZkRXNRZURrS2tNSm44VWxtNzJFbE5NTGdydXRNTnFlRnpkZGhi?= =?utf-8?B?TktjVWlpSW9aSy9hNERxVWdXaWpNSEpUckgrUmJPMmdUdGhydnFudnI1ek42?= =?utf-8?B?WU1ONFV6clZyajVYdHZXRW5EdmJVejFtVFlLM2R0V05nVVBhZDgrRno3VUM4?= =?utf-8?B?VDR1aFFRczJhMCtCNmFBY3lJOVNOUVdIbEtzNUJlY21JYSs0bjkvTWkwa3Bn?= =?utf-8?B?aDk5ZTJqWWhkNmJ3UFNxWWdPWTVwR1k0aHJycVQvK1YzZXd2OGVsQi9DSkQy?= =?utf-8?B?UUxoYzN4Mkp0b25FbGJTTnpiZmNmbGN3WU5XVlB6ZGlRbVozT2lYcXFiRXlO?= =?utf-8?B?aDhHa2Q1Y0xjUHgxTzB1L3BGcTlpd0hpbmlOR0dpNmFFU3NGRTJ0d28wQTR1?= =?utf-8?B?WFd0NEdEajFWaVlNMG8yWkFPVGZPUWhudkl4QjZjVXUwUk91WU45ZC9PcmJu?= =?utf-8?B?My83V0tKdk43ZVdCM1JadFFJcFNxRDFyQlRDc3RXdElQamNZV2xBLzFHWmk2?= =?utf-8?B?aGtnLzMvd1NkTzU1VG45Q2pYRHEyeDlZb0RTQm95Zzg3R1RLcVBrSWZFdC9D?= =?utf-8?B?MytPc1o3U3U4L1ppbzB0Y2hrNHFQbElmdGhWT0toR3JkN1NmZnhlRG4rOHJG?= =?utf-8?B?NDV2M3k4cjdpdDNxdUwxNDlxa0VkZ3RWUGQvNHZRQ2xkVnJIb2RaMFZJdE11?= =?utf-8?B?NHBHYURNV3JRNTlxc1JORU1DZmM2RTVQMURsampiTVk1MVptSlRSQ1dPRFh6?= =?utf-8?B?TDRzQWF2NUE9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;DB4PR07MB315;6:gs+ndN2UDC6WC5AfbH6PLxf9hR0ti8HjC06vy9tC4ywZhBA+P/p1b/JwCcwWcaBgkZnGvB65kCvoc+51RfllfM9Ggh2ReK9WbuIpjRu71hiMRajrBbXLj6A28ePmrUZYMbH9Sp+ab2rI1Ylvv0al7cN2CzK2QJC/PkGX78hJ3GxcBubk3oVGp+ghVNfeQSyHHEHGgAOgSZlftYRUvKR33GU9NRIfCcCVVW0Rg7CD+0HRxcgPsyT/2ZtMhM1dndZH3VfOaHlEYhvqLEpmVK74iev9Cs9MTh7gqWhuFEfnLTjgm25IyiSGtWg2zdkW1hhfBtKHDq+ZxHADaOOswOfqXiU0CaFYcewcrUyw0XCkf5k=;5:9VghPxBNgIZ8Y2F9dYjDLSikZVxcz1pRRmqzD+AHfwQ4Wdx9xZ6nzS9aEBhQiUo+P17eEFWYuP9DV51ZP/Z1h93XetAc2FtUNWsBNVyKagYMBL6j2GN8zrnX6sHS88yDgohfwxGxCqUfvZgmhX+RsennpGfo1ecvjePKhZd9xS0=;24:XxlQ09B18ZbXThR6nrxhevi72Q0D8aFqFRSkAwuhacDW/vteHeXIVutpjwD1rbURtyZ/DKTcCkk6TigO7hEHWAkliAF9FPyM481CM4Y4A8g=;7:DR58ucbZN4F8SMu6GpuDcKU6mY1wO+1gJ4cqIFo38XQ+u0o7mjHtXk6KlV/R0PP040emR2P96GVe5j3jyO8RUo2tYUrn3DiIr2aAkWUZN+x78A1uwQVeTiQwHvoewG4OMBSRVeY38ByOPjnzYvbbL/moRDrF9Y8hxI5f08lNrGkqDRAl00G6GTGpRCPG2NoGxVOSI9oSEp5AY9LKnTBkpgAY5h5vrWY0dYywBq8KRASr8z5ye249IeV80KZKhzkS SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jan 2018 16:55:12.0456 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4c309ca2-520b-47ee-4de3-08d555ef6b33 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR07MB315 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2018-01/txt/msg00143.txt.bz2 On 2018-01-07 12:28 AM, Simon Marchi wrote: > On 2018-01-05 07:26 PM, Tom Tromey wrote: >> This changes dwarf2read.c to allocate abbrev tables using "new", and >> then updates the users. >> >> This is somewhat complicated because ownership rules for abbrev tables >> are obscure and involve a more than usual amount of cleanup >> manipulation. > > Hi Tom, > > After staring at this code for longer than I had planned, I came to the > conclusion that it would be much simpler if dwarf2_cu did not contain a > pointer to the abbrev_table. In fact, I think that dwarf2_cu::abbrev_table > is actually a disguised function parameter that should be passed alongside > the cu, not in it. > > This is made clear by the fact that we are setting cu->abbrev_table just > before calling the DIE-reading function, and reset it just after (with a > cleanup). The dwarf2_cu::abbrev_table is only useful for the duration of > a function call, and then reset. > > The dwarf2_cu structure never actually owns the abbrev_table, it's always > some frame in the call stack that does. But they own it indirectly via > dwarf2_cu::abbrev_table and some cleanup that will free the table and > reset that field (dwarf2_free_abbrev_table, or auto_free_abbrev_table with > your patch). > > The parameters for the DIE-reading operations are passed through the > die_reader_specs structure, so I think it would make sense to put the > reference to the abbrev_table there (this structure really exists to > avoid having super long parameter lists). This way, each frame that > reads in an abbrev_table owns it through a unique_ptr and passes it to > DIE-reading functions through parameter (through die_reader_specs). That > seems more straightforward. > > Here's a patch that applies over this one, that illustrates the idea. Let > me know what you think. > > Simon Hi Tom, I just pushed some dwarf2read cleanup patches I had posted a while ago, that I wanted to push after the 8.1 branch creation. It impacts this series a little bit, so I thought I would help you rebase it. Here's your original series rebased on master: https://github.com/simark/binutils-gdb/tree/tromey/dwarf and here's your series plus my suggestion, rebased on master: https://github.com/simark/binutils-gdb/tree/tromey/dwarf-plus-suggestion Simon