From patchwork Wed Apr 26 22:51:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 20177 Received: (qmail 51907 invoked by alias); 26 Apr 2017 22:53:12 -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 51897 invoked by uid 89); 26 Apr 2017 22:53:12 -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:53:11 +0000 Received: from ESESSHC017.ericsson.se (Unknown_Domain [153.88.183.69]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id 8D.7E.04167.6D421095; Thu, 27 Apr 2017 00:53:10 +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:52:59 +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:24 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 08/10] Class-ify lm_info_svr4 Date: Wed, 26 Apr 2017 18:51:37 -0400 Message-ID: <20170426225139.313-8-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 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: 108799b1-1058-4610-e772-08d48cf6e876 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:DB5PR07MB1720; X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB1720; 3:2iMr17908Kj8l0WuVk6R1PGl9Agye9M9HAYNZsCAAuLPfHixiUxp7AdZsof6ge4KTw1gg5PaD6Kaj/ieCC5J6aItMnwqW+Y7mSMbn0XmW3+JcZnltTgL16/4tS0J+ebZkVQlYZxDjkZCEQJHNRZm6VFWWflURToQSt+Qh6JnKOCC00RpycsVZ90Bz+c0DhSA/UnuQISMoYX8PoW47c6L/E3hisyJ53LyxPspnaCZ06bqzjl8789vYGr/OntRHXPgvdWavo9LnSYBU+JJqYiEIMLdDFJpA+z4QUCNl2grciCjKf0LQAcextQv0kRi+5uHt2JBv6mM7tr58knOLI3BWA==; 25:63AW7W864TXsNex8mZdKHFjgrrLoEe7n7oGYkhMB+WhkD9aHWv2lYc1024Dhn/cfYNFRMpE2owcLsZEE9hTv+7ok/HwRmPeB/S+oC5NLKUwz1SjYbrQIAFvduiG6VgnE20GaHMlmBRykrZyMRUk/+hGsK5tx1FlblIVikcAnmCo0DbiWBLjFE6Cp/kWYs9djpWuERE+Eq6R7uOl40j0hiwmrCnbQT+ZkbjzZ1qFqicSGpF4X5uzuYZgxHiF9kR0aG/m4iSzBnx9KaWjUa2eM0F8cx2QRMm8F6OLjLep8ODa4ejyXgSi8FYNmgk6/MfTgWIYL6fhmExAGzZAuZDyU9HGmqnHKHIrfv+MxjuaWCyprGEYZ5dGxITdzZz7gXIzH6tJ4xuCYT8H16YQ1uW58FiPFKK/gtlEtol4xdvhjqHI9v1p3UJ1eN5t0fJiJRIhp8kmBBmVzyyWjtlw2yMi8yS5NsCYNjRuqKodMxYHSXVg= X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB1720; 31:MRC1GtcnPv1dOa9VI6aLeokSWqMWfiQgttBqqKET6TqdOgoMokmq9wavOuUnNUJrn52s11WpMdu+kYOZQmATXVXDawWXsq4mZUx0mPurtZC7DhJ56XTkcH/110IsedTFbhAmIpZenwYMa7zGIy90D9sZ5oBGuXdy4OhiKpL2V+S/hc4BPe1BpE/N2ZoGwxtmwabSzRxl5MeqIEvwkQb0NBly8l11Mx59I2zoJGRTQG0=; 20:toSmbzRkNdVPZAilXR9PaIgQ7MptdmbxqeUFnlCVWkWLZv5yuaZwI2tyF0WQ9NsHji30DcUo3/FQY1QKGr7jhYRndwsLBWYZ53S7Zbi3XRu0zFbzo8XC5JqXKJmO+IWiFU2/nf1GCzh9JyPgOaMa+YpYtoZz3428kCJZi/E6Q+1Bcpu5eYR4bDkootUNMT6/YMkpf3tULpddmpQNNFhC7hSYvOq+XHI9g2IaP+JRQag0Gpz+U+Tn3zuLUlSogaqd5KieAjGRpFYvkG4D5vjNWJBuyzo4Ffl0Ys98tGp6IXAK/0ErhIyRoLSFwdTAtOC0t78okcIzQ1inJC4mcie4ZKwpgfyT43ah/Hu6Yx135jLuSfJ1zLb9CldpByl9wWh0C4a9L5oq4aUbp1oGEG6DnbBYC7uT+rXVB9hoigC2WZJw7pBQKyg6oKFl+bVFG+5MmYk1tMg8mXaEok4BAp2UALUSJkGVpeBTyO52EyA57c/N1USuB3sr2Z/ed6bilAc6 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089); 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:wNLiRzmAQwssIxSIzqupS3o1Z1/1KLHBPg3ncC4FQoCtekOPfK0u5PDxrM9hIjpvcbD1hGngvKg9AOtcMNYm697K6CeNMNos5b74sFsM3pbombW/t47IX7R6gAe8Xh2fYIIhDieV47LtVjLp7dg6EVZZ8wmANNRbgF/QqkbWHQroKApKvfc2Fxes7P9TeqFv2+iPhk1ksccF5x3j8m4xz0PeTZTB2fMzwxfqQA8KGS3VRL2BQgYgXfEsGTYZUOrVOTlfZ2cJ/Gr5+USeDletW/i1vgBE+hWZ389VnofCEh4HFzsuUrXoqbN00t/eUz8t+EjCMgKvoItuUNjot0LQcBMdab3LomOC7bHU7xYbyGt5M3r7Fcr0kLU5ecxNMm+fM3GkR22DrzbFtGlU7Ow/xGuwwErnotb3g10JVquuLiMJ8qoCBW8S9yzeB6X7cmi2VOTe+ri5Bdu0vo1RuVNgTJMrOfvtepv4liQHlXnSBM1YSmi4F0TsTksXyhCMYRpZ3EdF0whtUzXtrDGhUcQ81uusz6xlzy7tfZ2j+PFoVAqDMo2sNR4v+jKXHSY7xRd/6GhalU0amQQvlcMq+wycsDa0zNam7aVsQY74+cleo8FLhxhn4AOED1k0PZvpXuHER1CpKmvxlYhwQzsez1Gz/0q9g7tL2SjSUK7zZcfBbZv69DBL82nWD9aS/Ft7TChzHw4x4ViEbfSuseTkySYtWi1y+7krKA6stg4DY5CyAKqblZimRMkI1nJkT1MGiBJSsay37iCu9N5Fxd+0P2r2Z7DwJg3qJf4inJMbMyN2FsqAcV5JQgtWeOGfaZKCHQTp X-Forefront-PRVS: 0289B6431E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39410400002)(39450400003)(39400400002)(39840400002)(39850400002)(39860400002)(54534003)(107886003)(110136004)(575784001)(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:vJs1UypcbKpg/DFWywRpJyqItsR7U5jQKb14TjCNQ?= =?us-ascii?Q?WkD8OoBqEmeDp4ljlb4/q3MvD8xlVHluNXWgrJdwVXCuU35dKizWjJ+H1B9X?= =?us-ascii?Q?vYOWNZl8wGbzOMiQw44FocEM22PAaINYg6X8j77F02IUxksbMNHH6FEDHf6B?= =?us-ascii?Q?UekbafJUEENfbaVj8UBM/Pt3YBmxrPxjAL+fBWMG7OLyjG0oavXqiRb78DSk?= =?us-ascii?Q?sNLAD8ScAbowcqgFIZAt4MSVLyktoA5lmwpb7MwWKWYDbKdLb7wOM+z4kQRX?= =?us-ascii?Q?zQ7+gAUo+ua1sO8EcnDibqZ7F6Mn6CM6sh/mNQ7KgDZHJyHtJ1Wn/9CbZf1r?= =?us-ascii?Q?q6Pk5LM3fTtx+usXSZ9aP3seYDhSicU+kIra8gjAB39/GwNZkVKTzTPILH9a?= =?us-ascii?Q?VfcPR2bKRluX2owLqBF6iRtIHFG7AYNyM0DiGG8KoTJZEQ+gS3UrftVJYkuS?= =?us-ascii?Q?fD2l4sl5vhlR9W+/LJ8dua+AYd9ZAz7HvLNUT4U6vor7A4ryP6vrQj1NjWIT?= =?us-ascii?Q?BrhfDszdQ/OVUHyRtkuU4G6SrQceT2/OQ5+QdBHfxJDJCTRriElVGFdOGYMh?= =?us-ascii?Q?hgV6Q2qlEl0N+l0Wg5VnY0xbBvaDfYnNKyPAV0WdGM18YX94LeCFw2fKtI0h?= =?us-ascii?Q?VCV1Sr6eqPyM5XsbnK/yfoIGpCvyK53uCr1srNjrYTEEDDVo7sZ60rQaaTSg?= =?us-ascii?Q?li1GRek0COemO9SJRid8KIbz4iF4jC1wB/GD6Stv1YdpvyfImyWqspOSNuYM?= =?us-ascii?Q?7jiKsH6ujr0MBhdAKrCWVeVg6q1gtud7/mkqb0N8U0h4F3CfBuStN3n0vZIg?= =?us-ascii?Q?kQ3+mRzj9F6nmd8/Q1CaZQjrgai9CvucH7XlSxvDQ6juplIvnPf9OhsY1hGQ?= =?us-ascii?Q?aLer508300QRW/41FlKfDGNgGDXBjxkO3swt+xKnUDR6JUOBbKYGMUr0+1uW?= =?us-ascii?Q?ESIqcEbmOVw80aWI0QdZ11V2YsElruoLcPYTnUqeNDd1zsCpOPa/PqCDJ2PH?= =?us-ascii?Q?d+n+9uzCsUootqQt8C/7wOqK6U27ax+tWXlMKDNEbDIQYj+hmHyNZ4FV4RhC?= =?us-ascii?Q?Ldx7z10uNOw0xcIJYlP5JkEy2my8SvcYH7Z8aPSwOLjTHT0I3upYkU1x+1VL?= =?us-ascii?Q?DdykrmRX749oCIdrLqfPd4Q5+WWFKcG?= X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB1720; 6:Jkk+ixVobDaRz+fwz/tkK4gMWiKVFvZPIFYD9ktWZCpK+EfZwCvIyQbVDNw5op8isazAmn8CbII3Rmg63WTBjdJTXegpBild4/pLOkhWoPPpdEZ//PHQbqBNWGhs2HiU2MRKe0j0W/bxbqk0B8re4QUCJXXIGGyPwDZwH/FDvz/SHFTabxevbdpOckxJE47lHEpal3cdYlUGq/YX0r3FdgN3BgRiB3nTR5E1ZIq13+yu6abkfdI0f6yTmtThiNqsrwSBtQ0UvuRuCcJB+8dpBrMMU3lULkTjHWDUmhLtFMsfTdw8R/vVvsY6BZMowBmdGghYSv9ZaJskTldN2K6aVs5zIW3ho81jdH4ss05JPgCr7bB7bwb+6rQVixKHDKoIHByAmy40ZEMJkCwjMFVwywEp467/uQnZNZTP/l0LL572x2a9C7QSbFcrtZ38bHBDBA7kBpeN3/E698DbkkUhYHEz8GjdJniA6umlwsLQjEi9l1/Ff9x2N+rQHRFR8NLu7GsoFcbEkMnHBhwhdLsPlg==; 5:tcKwXWHlxUJsIjnwRq4OSJnBxLlU0csU5jWGQ5YQRYYaDlg61maHRgGbpePKlKTnbsNbGLCRSqHcgLlfKuF9GpbXkF8NjqqlF46tzFTUiHYGzrP2WbXAJE6yYRUhHBBqr4Q3Xl5Sts/nHd+3BNbbFQ==; 24:lPp3OQ/zBNWGROzzxQWsUR4cyKdE/1Ezu/VNVrlv1nTJtpBAvmLuLO2EokWljXlnXL+v6K5ymxaKlIflHWV+VywdBpS7ITP6gk4o2M5m3QA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB5PR07MB1720; 7:93J0egyokzJgU1uEa86lu0zM+Ey4tSSIQdzulkeN0dNEvDLu34WvgbkFvgSnT6haoxZW+dOTs4CB4r0ZMU/fkGRp685PukhSErHwxaFqibRCdhH7UWJiQe3LsnSdieqqW/xetk/Wa8goMIEWcTKsWAr3WYxyqg1P8YZqkZBRfNkgctVkpMLAIK2UtsUrpS/WUXUvszaW8Ji7/HsNKqyJ0didSydiEnFI947RugiHZvICQZcomOQzBKMgfSMf4ykSU6HXd0/qZsKyE2lVGKl+SjSf9QV2tpqkOSS4EHdZUE/9jcquD4nxOvrJHqtqJb9Kwd4bd3CbJZNgXJg+dkcu1g== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2017 22:52:24.7594 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR07MB1720 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes This patch makes lm_info_svr4 a "real" class. It initializes fields, uses bool and replaces XCNEW/xfree with new/delete. The memcpy in svr4_copy_library_list is replaced by a usage of the default copy constructor. gdb/ChangeLog: * solib-svr4.h (struct lm_info_svr4): Initialize fields. : Change type to bool. * solib-svr4.c (lm_info_read): Allocate lm_info_svr4 with new. (svr4_free_so): Free lm_info_svr4 with delete. (svr4_copy_library_list): Replace memcpy with call to copy constructor. (library_list_start_library, svr4_default_sos): Allocate lm_info_svr4 with new. --- gdb/solib-svr4.c | 14 ++++++++------ gdb/solib-svr4.h | 8 ++++---- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c index 6098d505da..080fd795ed 100644 --- a/gdb/solib-svr4.c +++ b/gdb/solib-svr4.c @@ -189,7 +189,7 @@ lm_info_read (CORE_ADDR lm_addr) { struct type *ptr_type = builtin_type (target_gdbarch ())->builtin_data_ptr; - lm_info = XCNEW (lm_info_svr4); + lm_info = new lm_info_svr4; lm_info->lm_addr = lm_addr; lm_info->l_addr_inferior = extract_typed_address (&lm[lmo->l_addr_offset], @@ -1080,7 +1080,9 @@ struct svr4_library_list static void svr4_free_so (struct so_list *so) { - xfree (so->lm_info); + lm_info_svr4 *li = (lm_info_svr4 *) so->lm_info; + + delete li; } /* Implement target_so_ops.clear_so. */ @@ -1125,8 +1127,8 @@ svr4_copy_library_list (struct so_list *src) newobj = XNEW (struct so_list); memcpy (newobj, src, sizeof (struct so_list)); - newobj->lm_info = XNEW (lm_info_svr4); - memcpy (newobj->lm_info, src->lm_info, sizeof (lm_info_svr4)); + lm_info_svr4 *src_li = (lm_info_svr4 *) src->lm_info; + newobj->lm_info = new lm_info_svr4 (*src_li); newobj->next = NULL; *link = newobj; @@ -1162,7 +1164,7 @@ library_list_start_library (struct gdb_xml_parser *parser, struct so_list *new_elem; new_elem = XCNEW (struct so_list); - lm_info_svr4 *li = XCNEW (lm_info_svr4); + lm_info_svr4 *li = new lm_info_svr4; new_elem->lm_info = li; li->lm_addr = *lmp; li->l_addr_inferior = *l_addrp; @@ -1317,7 +1319,7 @@ svr4_default_sos (void) return NULL; newobj = XCNEW (struct so_list); - lm_info_svr4 *li = XCNEW (lm_info_svr4); + lm_info_svr4 *li = new lm_info_svr4; newobj->lm_info = li; /* Nothing will ever check the other fields if we set l_addr_p. */ diff --git a/gdb/solib-svr4.h b/gdb/solib-svr4.h index a9b09aa56c..705c587d0a 100644 --- a/gdb/solib-svr4.h +++ b/gdb/solib-svr4.h @@ -38,14 +38,14 @@ struct lm_info_svr4 : public lm_info_base It is commonly the same value. It is cached as we want to warn about the difference and compute it only once. L_ADDR is valid iff L_ADDR_P. */ - CORE_ADDR l_addr, l_addr_inferior; - unsigned int l_addr_p : 1; + CORE_ADDR l_addr = 0, l_addr_inferior = 0; + bool l_addr_p = false; /* The target location of lm. */ - CORE_ADDR lm_addr; + CORE_ADDR lm_addr = 0; /* Values read in from inferior's fields of the same name. */ - CORE_ADDR l_ld, l_next, l_prev, l_name; + CORE_ADDR l_ld = 0, l_next = 0, l_prev = 0, l_name = 0; }; /* Critical offsets and sizes which describe struct r_debug and