Message ID | 20170426225139.313-9-simon.marchi@ericsson.com |
---|---|
State | New, archived |
Headers |
Received: (qmail 54480 invoked by alias); 26 Apr 2017 22:54:46 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: <gdb-patches.sourceware.org> List-Unsubscribe: <mailto:gdb-patches-unsubscribe-##L=##H@sourceware.org> List-Subscribe: <mailto:gdb-patches-subscribe@sourceware.org> List-Archive: <http://sourceware.org/ml/gdb-patches/> List-Post: <mailto:gdb-patches@sourceware.org> List-Help: <mailto:gdb-patches-help@sourceware.org>, <http://sourceware.org/ml/#faqs> Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 54450 invoked by uid 89); 26 Apr 2017 22:54:44 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.2 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS autolearn=ham version=3.3.2 spammy= 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; Wed, 26 Apr 2017 22:54:43 +0000 Received: from ESESSHC017.ericsson.se (Unknown_Domain [153.88.183.69]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id D8.9E.04167.33521095; Thu, 27 Apr 2017 00:54:43 +0200 (CEST) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.69) with Microsoft SMTP Server (TLS) id 14.3.339.0; Thu, 27 Apr 2017 00:53:10 +0200 Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none; sourceware.org; dmarc=none action=none header.from=ericsson.com; Received: from elxcz23q12-y4.ca.am.ericsson.se (192.75.88.130) by DB5PR07MB1720.eurprd07.prod.outlook.com (2603:10a6:0:12::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.6; Wed, 26 Apr 2017 22:52:28 +0000 From: Simon Marchi <simon.marchi@ericsson.com> To: <gdb-patches@sourceware.org> CC: Simon Marchi <simon.marchi@ericsson.com> Subject: [PATCH 09/10] Class-ify lm_info_darwin Date: Wed, 26 Apr 2017 18:51:38 -0400 Message-ID: <20170426225139.313-9-simon.marchi@ericsson.com> In-Reply-To: <20170426224706.27988-1-simon.marchi@ericsson.com> References: <20170426224706.27988-1-simon.marchi@ericsson.com> MIME-Version: 1.0 Content-Type: text/plain X-ClientProxiedBy: MWHPR17CA0066.namprd17.prod.outlook.com (2603:10b6:300:93::28) To DB5PR07MB1720.eurprd07.prod.outlook.com (2603:10a6:0:12::25) X-MS-Office365-Filtering-Correlation-Id: 2e1c326f-a477-4fda-d102-08d48cf6eae2 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:DB5PR07MB1720; X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB1720; 3:3/PPoe+OpfSPJBF8kSuVd2ipgYEXJFsu1xQiuM5+6lNYs1qBipswPsouydT8CZbX94bXMSru8phci4mxi/289KPRG/7/N95ilLzxmvZPM0hygGlgQih96NiqqlxQOWWyKaD2d7UdQWeaFgZONl87iIqMRh5xrxI6USfDCNZV8nRKENZBC+t6MSi5H15K2L93DS+alVJT217SPVxfctEkpQDf/r/bvKYFRlkJyQqHjC9FF2BPkQBofJPvpeK2u1pjXYCewAm/pRxuo0u5HphD01QITBMLF1tTnSjAYluW17w1JMpVM2p/oEnQ0WlFT1bP8dMWcgzYf+aDcpUJ1B2MhA==; 25:0vcllwS9BViF9Kszlvc8xyXuRdi+pHdaLhlqLPnsJe5tWMKlIMfVHzdTvxVQ6tnPIfqY1lp7hCk/mlOcgoe46eCJkH7Z7Ov8HtBcNNOJgvUtfI/WTbf235ko/ZWGp54r6JG4gvkygERSX+qNzMPuPW+j67z7puA7d8GHp1vlIEKL5TyWoWmXiTUPVfC+trnBsOrMHLFxPmJKfPGJJk7TdkyH3PilnOvy/ATndBDl1K2rE2YJ8m9cUyW1n4P8rvg1rztlMmX0whDoelpirzdLv579DKoAmLtovcPDamr2bJFgi76OX7k/X/mQ2vCHKHJwJQfgaQmQxliQgoGn8ztA4lVwykK5DBUnfA0yl5OLFBvRveXLmfbGzqxmTd525bCpKPCRdvyKhGEK3WndDz1hyFCciqdR8U+GoLHPi8/Lxbk3vU2Zq83Kugp6rujZR77OrDMIFg+CUpI51m09wnUJX2WUHuc9911edojFeTKcD20= X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB1720; 31:QunJ/4b7LIzgzF5S8SVrDlgHihrWVIvdPNChTljUmhfHmej1pweu8HoKOw0E9M2NNN1CMSnF3iZUfh+5vOqMSXPxIo2G/Za1N57MYbLBlYPO9MFQQ6IiUrCqhmuAWajYjwBiQV4wOkLN0AqPy7q6V3mcjP42raBC4PgGIBVJVgl/RP2H2nn0W9uzgcsW5YcjhIXLWa9TGvGum5Ia93JJyM/kJR6EzYpygPr3ejYqwgM=; 20:8CZTR3JaBpbBrcc2oNfHNHCAYvuajxmGJpFq+QpXW70hNHu/wE7+Mpt4NLWQagDP1+17a7eKKMy5vrdqeuNRqg23C4iCwbHGnCHGhfI1kZ/yM53aPNlkxyvwWk4J7icF9rKQ21sve3ozqEjh6exjwV+MrUiRjj1u2HG1UFPNyYuUaw7kkTNWyBMFEEfwKTnXwpIDva7BLvexQKSWrL8Mk6vDrFF3XUj4dRvOUb8k21UX/FMXF1SLReePzsgoTnKwNvseJJ9Hy25ncL15ou6mv5kwPe0UMZvqQxElx+hSrt0b2UQo8NdNCBPJoMISStTQcrFL7V+k4h1RIoCih/scmsgO2MFNwTgg1fRcHf+6bnWDIq6tYbL2PRFDRT1BARpT3WTuaiGEtgNM87O9tfh+Jq6RFzph9Mnehdpu6cZbpYBJCCUVNRSx2u+O0n5dlUDtDS3krkEG+5Wby7q1QWsSuM3WxaHN0k62tdSdIMjDBg1VnRGWI0dDOKQ75V85F5wy X-Microsoft-Antispam-PRVS: <DB5PR07MB1720B8076B1871E00651B346ED110@DB5PR07MB1720.eurprd07.prod.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(6041248)(20161123555025)(20161123562025)(20161123560025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148); SRVR:DB5PR07MB1720; BCL:0; PCL:0; RULEID:; SRVR:DB5PR07MB1720; X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB1720; 4:62X8VMOtyW8d1Zfa65tQP9dupqUnECCxgwbKQua9NY146h3RZMCZOQ/gXkOwPzTda5Mzm1LVbfA6Z7/0XR9tsz9dWDBxVPvr77w6WYO0f8PDnUOGcnxc7zaQuEmUZT33M5gXlzpYzp+zFCwFW6CDl3nWBdlEoPyQZ7Gq1baAMVFLWQ8z162tC5qCg5Aqn+kWDC4JoU8TiueslOnsLdttQrhieRoqq/seQDEkfzsnNUCp7QeNVe+L/+UOYxvshcyEMTE051wuOGCk5koUUHRXjv/Sf6ZLUk+q7E4W9A303SZU9vwa9UkvwlgfFedld2prnjK158z3uDd8qQqUAleBH+r7LxUckgGy72GfBKBnQSR3ghbSt4bA1pd+21ZHgeIPbD2ZCCJgMpIg7W2h9RJmrbJ7dGrSPIxJw47CUfvanojwaWHHAgI79nORoMSOI2apiz6gRVMSTaNzZxQHdo+BLcJ4t2VDXv73XdXrPgQG29Vw9uYOLgElI4jdVuwkv7AYY1L1pNZB6KCqdq4v6OukOAgfePlXRcqT16YLB+T3/NoT+4aq9CvUm8eas8QqMypnMwqEaxtYcqdW5PMDuAXivBJ/nqyAkS8adjFbcQ4bbeIj1wvnl+0SNIWCacUQNWN5lrP4AW5i02DgKhl1K7WUFT8UklBcV8TXj2dPTxuGrcasgN1YzE6oJP5Q185aCij44ftG22FJtQc3eS941zJq0DQg9InDenA7NK7bKr0EKq8JDUOWoR7kcPUygLWmFWdbcv1LAibC+r8HCbNzB9dfx95rx5iqtHmfdGLiGqH03h0= X-Forefront-PRVS: 0289B6431E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39410400002)(39450400003)(39400400002)(39840400002)(39850400002)(39860400002)(54534003)(107886003)(110136004)(42186005)(38730400002)(86362001)(5003940100001)(2351001)(189998001)(33646002)(6512007)(53936002)(5660300001)(6116002)(6486002)(1076002)(6506006)(2906002)(3846002)(7736002)(6916009)(6666003)(66066001)(8676002)(2950100002)(81166006)(48376002)(50226002)(4326008)(50466002)(76176999)(50986999)(36756003)(25786009)(305945005)(47776003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB5PR07MB1720; H:elxcz23q12-y4.ca.am.ericsson.se; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB5PR07MB1720; 23:jClTg6suqInlJvHhaCSbQpSni+sc/d/DbAnnE5yFI?= =?us-ascii?Q?DrhdCT1CuKR563VmKROS54WJPsNAaOrYSuAhrmLd6B1ByAU5/hzmsdnj6Ezd?= =?us-ascii?Q?HMk0bPHhXElMiMoRyu0a9dX1L4+CNuXCXGkXuIyej5oSuBYm0Fz6BSB/K2hb?= =?us-ascii?Q?E2dSVdbA+nqOGvOtnbQKb3H7bZ2GfgemZhVS2ds3LowvK+Elpv/tUTMXbSJY?= =?us-ascii?Q?QqRugOP6YmmIf7qFosxUsUt4gwACCEfNuil+FZHZmzYoNyROqLFSsKqNtBrO?= =?us-ascii?Q?3CFyHKkOrrQLxaWaCbPH6x+TU733hCNGv0mNQYGTke4uH0SR6Tw8oCtUlCj6?= =?us-ascii?Q?QUHvq8NkjjTWUOGkHAWxM1pp3c+PMFrKk//Gs61ZOlBNbr2pS6JcJpS5JNpY?= =?us-ascii?Q?iV4e0TWzh82jgdkP67KVd4Mtq//Y+pz1f2losAxeTFyDqK1mEyd5otLD11su?= =?us-ascii?Q?6dOA8Qym5mGB3yhhj9AVrutjy9RB/ZajYjP0KT3QKvWotXnhzxEtx2x89NVP?= =?us-ascii?Q?gjw+ud0hGu1rd19OaE5oidfW0j9SNc1c44dbkVhQXOgl+glb72XV7o/hAhDI?= =?us-ascii?Q?+OTct1mhfRGDVakL7tQMO8Rr6PoqEbxP60YAzH6u/SHphJPoBQpQJsntNmfb?= =?us-ascii?Q?/G3ZIQf59D1Cuac8+0rCFGUjl+e5YIGiJWS5S4UO52dIOJ8x2tXtbX7Ogb3s?= =?us-ascii?Q?QbW0QNO6xN5EDmeiKAAnYJwhEHKJSOzdDYI6Nv8swYOpxqHc/zLXXQfyEBJH?= =?us-ascii?Q?a3ynONtBVb6c4JOg6AEUnpOxmu4/Bnkf6FQyCnHAUugDHcduAvp61S3ycReN?= =?us-ascii?Q?WyAeSBQP2u5GnE9ePPIBv1pvRh2/1hUwoNcNEhfi11E8LFdvWPA4q//HN0OT?= =?us-ascii?Q?fWYM7g3oRHP7dcu2RGoziVi6GF5eUOc1/zFG7AMbe215h596YQBTy1iVlEWR?= =?us-ascii?Q?rMk8H3f7Or8BiAoby34exp0gJ30ho7VfIRG4NmZyGOK6KC8qPIo/jfdkGzRI?= =?us-ascii?Q?ZwOM+LvoOJ/CBVSUBZ3j2lrzc7vJktc8zvZVd/wR0XXOuAT7S4OEBWspV+WQ?= =?us-ascii?Q?cK9+ZRU6neQ+/8Q/PNelFI/2Gmqjja8WHDPlvaNehTtB+lxy2+EXBPlf8jOM?= =?us-ascii?Q?Y9pO6HQQwU=3D?= X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB1720; 6:qlBwfhrGBSdNEbMZIeBH1OdsovzZ46uwwFKnhV0C2WAyVPGDRoDSXhP5KKzdPUxLPe0fNgvAlfimGUUs/bClNa4Abx7X7cKfWYYi/LjGM1a35tD1T1iRQnnyWB0jADwR1Kjdqb9IjKLqdGVGels3TeSj/3vN2FwVaGeuQgLE2xLx81ElLXnRDG43qy0kOm1RNg3hVK6Ynj85T4Qmxa4xFhPzk5XXQnUbkdpJ/0mbU5PjR5DM3Tm3xJS79LR8XXi0IcGNcHlgk2vdsqCjXmYYcQl41vtd8A7bRsrxEFHFfC9sUhZ57mT7rLzipPCE2S28cj4Y/da84a4Ylsawa/2YVo3++ehJfw3AG7RrG91touupslAZ5R4sUBYzCq80H3im8frtRPDQcqLgLPFmzEtgLBsqNzRDdN4z+0i6IA3H+ynPJWwD4kFlVhnt0iprA053oYkoD2+QmkDfyow2hs7QX8EjRur9Cv0B5biiempmW8KA7HTij3u/qOYQqcrpb06Ph2MtZnvmYUmbvHDbZaL2KA==; 5:zLqpUiSwh04bBqIXeWS3oFw1+agu67vOTIYUmHK67g6emKfCdTXsn0vOfiAEfxvHyp2zif456lSF3OHud8gd7+EWCwfmxjG6Z4/Dbe1Q3Z4eHyeWTudQqGEhONdD7Y5Gj5xTGiDpT5QIZ5IkzgpwYw==; 24:O0tUWlKVAGkuGbzGWW25tQ5u+0ch7WZUHWZfjBXunZgFiF2yvqWu5qFiKZBgc15EYhFqrnKj9L3QWRxs8nZI3D7WaabXcy17FjuJtNGSlv4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB1720; 7:NaLm4rb9AP7nBvpo0tHkEZZd97duin5imC/uvhAqnrOcK5Gbu7IfWVKMsn5T+ew2YoBz7djv92nk/RdKEqOPT+8n1Bod6zO5NP+6C95dZqa/3eRyrTttgcB2Bnr4hpg0hJqCIejODXiCa1Uz8aRaIGVikvWRf8MECLzrbH0n6hrIF7m4tXp0hNNqk/t5eBJoogv9gX5zMikQm/P+NBplDpXdhd5uSHcRIO/SuwQ1ziTDIzfqZ344AuV9Mwr2djxWHMTXeEJYpepT5+bw4SApD8VU/ULfzr+YmsW6TvH1k4Quaub69F9UAiiBXQlfRmTBDCT82AQvxA+TW6NfE1ix8w== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2017 22:52:28.8221 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR07MB1720 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes |
Commit Message
Simon Marchi
April 26, 2017, 10:51 p.m. UTC
This patch makes lm_info_darwin a "real" class. It initializes the field and replaces XCNEW/xfree with new/delete. I believe the cleanup in darwin_current_sos can be removed, I don't see anything that can throw after the allocation and the call to discard_cleanups. gdb/ChangeLog: * solib-darwin.c (struct lm_info_darwin): Initialize field. (darwin_current_sos): Allocate lm_info_darwin with new, remove cleanup. (darwin_free_so): Free lm_info_darwin with delete. --- gdb/solib-darwin.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
Comments
On 04/26/2017 11:51 PM, Simon Marchi wrote: > This patch makes lm_info_darwin a "real" class. It initializes the > field and replaces XCNEW/xfree with new/delete. > > I believe the cleanup in darwin_current_sos can be removed, I don't see > anything that can throw after the allocation and the call to > discard_cleanups. Agreed. LGTM but ... > --- a/gdb/solib-darwin.c > +++ b/gdb/solib-darwin.c > @@ -41,6 +41,8 @@ > #include "mach-o.h" > #include "mach-o/external.h" > > +#include <memory> ... this doesn't look necessary? (it was not in the ChangeLog.) Thanks, Pedro Alves
On 2017-04-28 12:00, Pedro Alves wrote: > On 04/26/2017 11:51 PM, Simon Marchi wrote: >> This patch makes lm_info_darwin a "real" class. It initializes the >> field and replaces XCNEW/xfree with new/delete. >> >> I believe the cleanup in darwin_current_sos can be removed, I don't >> see >> anything that can throw after the allocation and the call to >> discard_cleanups. > > Agreed. > > LGTM but ... > >> --- a/gdb/solib-darwin.c >> +++ b/gdb/solib-darwin.c >> @@ -41,6 +41,8 @@ >> #include "mach-o.h" >> #include "mach-o/external.h" >> >> +#include <memory> > > ... this doesn't look necessary? (it was not in the ChangeLog.) Ah, the comment in the commit log and this include is a leftover. While doing the preparatory patch for darwin (01/10), I had put an xfree cleanup for the lm_info_darwin structure, but I later removed it. Should we expect that the "new" operator can throw if memory allocation fails? In that case we can't get rid of the cleanup for newobj. Simon
On 04/28/2017 10:13 PM, Simon Marchi wrote: > On 2017-04-28 12:00, Pedro Alves wrote: >> On 04/26/2017 11:51 PM, Simon Marchi wrote: >>> This patch makes lm_info_darwin a "real" class. It initializes the >>> field and replaces XCNEW/xfree with new/delete. >>> >>> I believe the cleanup in darwin_current_sos can be removed, I don't see >>> anything that can throw after the allocation and the call to >>> discard_cleanups. >> >> Agreed. >> >> LGTM but ... >> >>> --- a/gdb/solib-darwin.c >>> +++ b/gdb/solib-darwin.c >>> @@ -41,6 +41,8 @@ >>> #include "mach-o.h" >>> #include "mach-o/external.h" >>> >>> +#include <memory> >> >> ... this doesn't look necessary? (it was not in the ChangeLog.) > > Ah, the comment in the commit log and this include is a leftover. While > doing the preparatory patch for darwin (01/10), I had put an xfree > cleanup for the lm_info_darwin structure, but I later removed it. > > Should we expect that the "new" operator can throw if memory allocation > fails? In that case we can't get rid of the cleanup for newobj. Yeah, pedantically new can throw here. Thanks, Pedro Alves
diff --git a/gdb/solib-darwin.c b/gdb/solib-darwin.c index 03211cfb92..0e20dc4fc5 100644 --- a/gdb/solib-darwin.c +++ b/gdb/solib-darwin.c @@ -41,6 +41,8 @@ #include "mach-o.h" #include "mach-o/external.h" +#include <memory> + struct gdb_dyld_image_info { /* Base address (which corresponds to the Mach-O header). */ @@ -156,7 +158,7 @@ darwin_load_image_infos (struct darwin_info *info) struct lm_info_darwin : public lm_info_base { /* The target location of lm. */ - CORE_ADDR lm_addr; + CORE_ADDR lm_addr = 0; }; /* Lookup the value for a specific symbol. */ @@ -296,7 +298,7 @@ darwin_current_sos (void) newobj = XCNEW (struct so_list); old_chain = make_cleanup (xfree, newobj); - lm_info_darwin *li = XCNEW (lm_info_darwin); + lm_info_darwin *li = new lm_info_darwin; newobj->lm_info = li; strncpy (newobj->so_name, file_path, SO_NAME_MAX_PATH_SIZE - 1); @@ -578,7 +580,9 @@ darwin_clear_solib (void) static void darwin_free_so (struct so_list *so) { - xfree (so->lm_info); + lm_info_darwin *li = (lm_info_darwin *) so->lm_info; + + delete li; } /* The section table is built from bfd sections using bfd VMAs.