From patchwork Wed May 30 19:43:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 27586 Received: (qmail 92068 invoked by alias); 30 May 2018 19:46:05 -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 91980 invoked by uid 89); 30 May 2018 19:46:01 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.7 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: 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, 30 May 2018 19:45:58 +0000 Received: from ESESSHC009.ericsson.se (Unknown_Domain [153.88.183.45]) by sessmg22.ericsson.net (Symantec Mail Security) with SMTP id 0F.3C.24558.37FFE0B5; Wed, 30 May 2018 21:45:55 +0200 (CEST) Received: from ESESSMB501.ericsson.se (153.88.183.162) by ESESSHC009.ericsson.se (153.88.183.45) with Microsoft SMTP Server (TLS) id 14.3.382.0; Wed, 30 May 2018 21:44:20 +0200 Received: from ESESSMB501.ericsson.se (153.88.183.162) by ESESSMB501.ericsson.se (153.88.183.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3; Wed, 30 May 2018 21:44:19 +0200 Received: from NAM02-CY1-obe.outbound.protection.outlook.com (153.88.183.157) by ESESSMB501.ericsson.se (153.88.183.162) 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, 30 May 2018 21:44:19 +0200 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from elxacz23q12.ca.am.ericsson.se (192.75.88.130) by BYAPR15MB2390.namprd15.prod.outlook.com (2603:10b6:a02:8c::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.797.11; Wed, 30 May 2018 19:44:17 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 2/2] Use std::unique_ptr in reg_buffer Date: Wed, 30 May 2018 15:43:53 -0400 Message-ID: <1527709433-16103-2-git-send-email-simon.marchi@ericsson.com> In-Reply-To: <1527709433-16103-1-git-send-email-simon.marchi@ericsson.com> References: <1527709433-16103-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 X-ClientProxiedBy: SN4PR0401CA0006.namprd04.prod.outlook.com (2603:10b6:803:21::16) To BYAPR15MB2390.namprd15.prod.outlook.com (2603:10b6:a02:8c::30) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:BYAPR15MB2390; X-Microsoft-Exchange-Diagnostics: 1; BYAPR15MB2390; 3:yHAp0S3tqj3PDSyXz5yEV7iPoqcySErPcFaxk+qF5whW05Y5iWv10mXJkZOXYNvAqHleBoyLcFeTJz9Hwc2WzF9gEWRvPFLi+JKuzqg82mltn0s0Ji7nepv9jqJy0htnjN5qrDF2TzN6E3hsnrtDeLbOdJJDY47Kb6ZGMd5gNLOvwp/DYJ4f4ptyWVv9pztiJRh1txbZM0L4CZkbOwNklfoxhb7AnzEIrBSXQznQYrvvm6beb8XHx7bSj3JdS+Gr; 25:AcZN5z3Oq/nholo0Y/LPh8sil/e70iDAVY6uGENRhoxWeTVnMcLSfONUmwe016Je98QyFuNvJdjal58lGd3pUkwTIKSDiI4OjmZm2Qnpz2EsORBkLFrgBny8UXXRBC7SbprT08F9orErpzwUue0UCk3wKKUMpGzbYztN8A7leLZHMNVqi5/YS2gWX0vILkvYZFRZs7YBxNIL8yqqULj5lhRNbi/BCjNJ/dgHGM0wfYkMijmjzgIHI7lIqYDSsTxLLjYcK5oySZj3lqNpaf5i6V3BPBCodT4pC4TbYIQgyXJzy6zUMgGH15qMyZbIh/BzqFVrlbIRFqsR9AiLHRuQNg==; 31:SGGuibi1ccJVWNMnfZVpgsbuaf9LXGFiMNFTmOj8ZTm0xwBSYVMBt/9hYZ46SbgFZD9IMpo8/KrhIas3ZhWoD6g5aw7ZPEvJKX0GD+gSyeZFqKEJixQglwwPJ08WlKpNVRBvTZCIxDLiakbYuBXQjujyamivOVqHk+SysUEoAeHxLbYHwyh9xiIwOlS6tyJ0SONd/hCQ/sR8vHff/u8EyQe1qQV1y4SFbbHrPJpEnP8= X-MS-TrafficTypeDiagnostic: BYAPR15MB2390: X-Microsoft-Exchange-Diagnostics: 1; BYAPR15MB2390; 20:Y2QSKPGPGaTKgGsOFgFMdyoc9plTp443JQWrMRqIzFEQ7nsKwB8OAwrBjNy/BxgKccdxZBzDxX8ZWHIxCbmz2FIhyvcIPhTLUIouexefFRjKmGoenu6vmxqsJsuLMviYVEv0gh5TW4GBZntUw/rI5d+OudBKt7HAP37WJFvX9MeKVJUBECVHXiveClZnIvZGlIRvoE4VdTVX+Op1Dv/G0o/6OEYRN4iF2d3A9095apfOTyRqzN055HEP8z7CUvwNjMlPWkyzrxs148puBCUvchgomz+t1edWKQRNZeyK+zdXSmRgRvjRu+TYOVbIxDFB1LdCYe+gtwMVDcVKMwsSWeBHehPzEEq5m0uSOwZpusLg6bix8KzUWGyrDU/DCfpwOujzihKY/7W6AokdLMk32iLo9/S8ldtzJU0Uo5HTkwNUVKtjkDaJvEdoTXOmwdoo4fm7cYdk14LqOSrHbar4lLic2xD6gwdOTBTj4DkNVEKClkpriuNXRouh7iuhSShs; 4:3r/JlWpfrjobHnUYKPlysvd08VgFn5WynoQryuFT3eq47j9eq707yH6fPgF9g5mMnm5OHXyV/qzPnXpvzY5dW5AyLOnE8r3WlCT3xaK38A3qA3cZXU8fmObm4mtKAqwmEwq7IT2P6efj1Jy0VAMiNS0fRQRg7Eof5aEh+eH59qt8XbKV0kFZ9UAxwzqNQrjuY6dJhv+U3pSq7bBazFaPco7MJ9Ceqx5L0aGGxcgNko5tX3lqQknll93oJbNx+jyzajl0GNhCGb0C7EQ3UlUKVg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(3231254)(944501410)(52105095)(93006095)(93001095)(10201501046)(149027)(150027)(6041310)(20161123562045)(20161123560045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016); SRVR:BYAPR15MB2390; BCL:0; PCL:0; RULEID:; SRVR:BYAPR15MB2390; X-Forefront-PRVS: 0688BF9B46 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(396003)(376002)(39380400002)(39860400002)(366004)(54534003)(199004)(189003)(50226002)(8676002)(11346002)(446003)(44832011)(6916009)(6666003)(3846002)(5660300001)(81166006)(50466002)(81156014)(476003)(6116002)(2616005)(53936002)(66066001)(2351001)(2361001)(48376002)(7736002)(486006)(956004)(2906002)(97736004)(6512007)(25786009)(478600001)(105586002)(305945005)(36756003)(106356001)(186003)(68736007)(16526019)(316002)(16586007)(8936002)(4326008)(26005)(47776003)(86362001)(107886003)(386003)(76176011)(6506007)(52116002)(6486002)(51416003); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR15MB2390; H:elxacz23q12.ca.am.ericsson.se; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BYAPR15MB2390; 23:F9+jqnlXYEHGsn7+uHkMQIOLWXeL9rxJsNDjmSwnH?= =?us-ascii?Q?MvcvbrOKv7qEVD+GUvx5aG0W7k6eaPVoFkLwU1umKelI24AhMknFcD7PCXNo?= =?us-ascii?Q?xcfR1776ZiqlvbYxErj4kesws9w2lM4VE/FwPAufJYLJtdqAjubaeaUS4crL?= =?us-ascii?Q?N7XeN9A5rpGRW/oEgJnp71A/RpTVJUDQ8PevaWBjzlWa4HVjE/1To4tUhiHg?= =?us-ascii?Q?hXv64TBdGiU1+cWmLRZmLxMzNHC7bH2R0gWYuHejCqvwWcYlefBMQSneexkz?= =?us-ascii?Q?oc1xXsaQV3gw6wSKHKgwbL8y5egg41BU/kFSMaysHXuxEuDV8s9brIcu08ly?= =?us-ascii?Q?mwoAS6bkIXs0WwTRvddL7HmrMlph0hFuYqH3gkmRXUSF//IhyfAeiwVRmKn1?= =?us-ascii?Q?zmhor2KO0j178Z8VYhXlu6EXI/UUqY4980wZaQUdZZuylLKnH3UoiWzdQRcw?= =?us-ascii?Q?g7XuF5goiVsRrIW13GBLxC2GD9akO1JabvuMr2H72dBtsvjJE0FpdekDHmvU?= =?us-ascii?Q?/2WI39UkVFz9/bU9Zy6ZHQSeYO8zngMK5EAXl/otRwuNyPSlKPup8s94sBPm?= =?us-ascii?Q?BF3QDR7Wfbfgzr8b2NFmUFEXIehwvxza4TXxo52E74YP20NC8lFTa76XfUgO?= =?us-ascii?Q?YlfIP9QFmzdfuu73jky63YJO/+TInPmJc7j3/x38xPO3HIPnV5366GxuVtjo?= =?us-ascii?Q?8o26ay/QyQMk1Uz6tDp4PnlMsv4u/fxhmWiy/9tABYk3++ftnvGznjOoazDa?= =?us-ascii?Q?a4hIRRPYVGM5twX/kMdcWy+OvPJsIuesPVOEL/fApwRXg1AJuhQSiGA/pqpl?= =?us-ascii?Q?LPK1LAenLc5hNqyCyqcjNEnb52yQhNyGxAGJU055eqnt2s9IhMIhubdcfuRD?= =?us-ascii?Q?Dwu7bQaR+h9P1/w/L+ogRvmz4CShcvBTb3HGNWvJdA7mxgT8M1XJzt3cx1+v?= =?us-ascii?Q?PV8cqXH3Ql2GeQ99KnRjRBNVGoiuCTeawMa8TiqbSeFqgWdDh7S3Zt6GE4D6?= =?us-ascii?Q?oUOnL8CfHHw52NmT8mL8/daIX1OMtUOTk7kOoNTLwmBG7oSKl+7c15vFcTHY?= =?us-ascii?Q?igTNbqjNmrdkd2AbzWbjJpDu2WnkjaTFz9Upd03ZH0PKHtmD/cmissbLkZGu?= =?us-ascii?Q?mMimkwqHxsW5quVpKiXArHhSNmDpwGitzB+uW3GCh8o/1lKomjjhm1gr8TF/?= =?us-ascii?Q?r7bGL+r8j2QYbxwAULoPQTcSPVkfFC4U4wId5rmVaA47YDzfWXZGHDhbxfdc?= =?us-ascii?Q?fSN1qhJdrBVW1HcUBjSbsHldsKRMnmRBssByEa2XX52ha0YWsr5RPAiPUQxu?= =?us-ascii?B?QT09?= X-Microsoft-Antispam-Message-Info: 7Juc20iv0In0CloRLXU7duUFNcBLpoeZfZzAOZQW7Anbbd5AhitP8Awle0uI2gQA/PpHDBMUV6AyDE43wgSzLFc2L5dSywvPMQRcD02qiUONHLXBeq+jlGE/AoMi1O1MP4x+MMJ77JU/q62svoXFCKBcAhBuULmAAQchexkM+7CNnOYocxMxScoeND6Wr1Ro X-Microsoft-Exchange-Diagnostics: 1; BYAPR15MB2390; 6:CUOSeATfPWEeG+XnUCRmCOfVi90ItStMJzkbQznhgVgg0bC8CNP2GM6SU4AT5Sz8o/ZYA2/L4S3RVi8PETBySo0ZuxaaHdRC4M7xVHCm4HZmAUD39VBu9CmswMITEb8mNT14WDqLG0wU1TbwmV/YNlgrR7lpHcno86Qaru1rBnIv7E6JW1HbryhmF2gt1AP2wiNLIQNOzXMQbP6oRt0u/pIP2VYI9+TsTjbudvih59YpmUxxu6bMGXPeeI+hBCpiwgk9iP+FXDxVB2XC2KXVGx5GA/Vbh6znhKnqqOC+Zm04xxAgguW0f/9lXhdU0i0qSdcfmhiYJAw4vAq0LrLZSj2hBw3Kl0W67PUd23tq94lJVD6Q6qnxu03zMRD1E5xkyZA5uTPspd3faS34OHMO862A2OChuhdeMLYgfySrx1vZysHyTVm5QMrYeV/Y/hDMVGmy9moxkuNny1ABA4hYnA==; 5:tLpWw5EhVYaRenTqxM440c04qnXABLtEmTVsQKnjHgCMaNajLj0rnuDF27rjOiIXqoJ4ZW39HRBoJ685yJvy1FObqEvSY89qu+c4ZylwcEwznBk4a11vmmGk9zeZ1Y8BIbtXu6VONrvjOHIh5jt65uSY+BdQKhcwERsMS7z3ff0=; 24:49shh+J1hyGHgYUhwJOpSjmRowscjFC4IcFSLlWqnyNjMCMAa0cFhLuXfocw9XnbR+V5qpKN6qzhBwYoqgfuo895HROzO7loUtvpwkGpf0c= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BYAPR15MB2390; 7:q1etAxGFg0rWp8F7esWM07RGEFqv4y/xA7isMoEdvktfbJS4qg5UQE3wdC47LoVXufTfMAImBNZgReweAJwPZaC3GTkAs4+5w/01oJly0XEOc7UBPZ4QWy6q8YYuc9mIcIXmuGwEBPWSpROHyP+oHG4gHmGSuZO4whouLCpZc9BB6jiYVYXSeNigdUDvLHK3SN8boKzlC8un9b/WFYBNOKaGDBzrDUKivAKAynT5iJoyQ1Z8DBphC/7QDoLoEZdp X-MS-Office365-Filtering-Correlation-Id: f0b923f7-c3f0-48e3-30e7-08d5c665bb56 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 May 2018 19:44:17.5871 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f0b923f7-c3f0-48e3-30e7-08d5c665bb56 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR15MB2390 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes Using std::unique_ptr allows to remove the manual xfree in the destructor. If I understand correctly, using the () after the new operator will make sure the allocated objects will be value initialized, which for scalars means they are zero-initialized. So it should have the same behavior as XCNEWVEC. gdb/ChangeLog: * regcache.c (reg_buffer::reg_buffer): Use new instead of XCNEWVEC. --- gdb/regcache.c | 18 +++++++++--------- gdb/regcache.h | 11 ++++------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/gdb/regcache.c b/gdb/regcache.c index 0e03071..6db7844 100644 --- a/gdb/regcache.c +++ b/gdb/regcache.c @@ -185,15 +185,15 @@ reg_buffer::reg_buffer (gdbarch *gdbarch, bool has_pseudo) if (has_pseudo) { - m_registers = XCNEWVEC (gdb_byte, m_descr->sizeof_cooked_registers); - m_register_status - = XCNEWVEC (register_status, m_descr->nr_cooked_registers); + m_registers.reset (new gdb_byte[m_descr->sizeof_cooked_registers] ()); + m_register_status.reset + (new register_status[m_descr->nr_cooked_registers] ()); } else { - m_registers = XCNEWVEC (gdb_byte, m_descr->sizeof_raw_registers); - m_register_status - = XCNEWVEC (register_status, gdbarch_num_regs (gdbarch)); + m_registers.reset (new gdb_byte[m_descr->sizeof_raw_registers] ()); + m_register_status.reset + (new register_status[gdbarch_num_regs (gdbarch)] ()); } } @@ -260,7 +260,7 @@ private: gdb_byte * reg_buffer::register_buffer (int regnum) const { - return m_registers + m_descr->register_offset[regnum]; + return m_registers.get () + m_descr->register_offset[regnum]; } void @@ -273,8 +273,8 @@ reg_buffer::save (regcache_cooked_read_ftype *cooked_read, /* It should have pseudo registers. */ gdb_assert (m_has_pseudo); /* Clear the dest. */ - memset (m_registers, 0, m_descr->sizeof_cooked_registers); - memset (m_register_status, REG_UNKNOWN, m_descr->nr_cooked_registers); + memset (m_registers.get (), 0, m_descr->sizeof_cooked_registers); + memset (m_register_status.get (), REG_UNKNOWN, m_descr->nr_cooked_registers); /* Copy over any registers (identified by their membership in the save_reggroup) and mark them as valid. The full [0 .. gdbarch_num_regs + gdbarch_num_pseudo_regs) range is checked since some architectures need diff --git a/gdb/regcache.h b/gdb/regcache.h index 1001eed..2f460a0 100644 --- a/gdb/regcache.h +++ b/gdb/regcache.h @@ -153,11 +153,8 @@ public: buffer. */ enum register_status get_register_status (int regnum) const; - virtual ~reg_buffer () - { - xfree (m_registers); - xfree (m_register_status); - } + virtual ~reg_buffer () = default; + protected: /* Assert on the range of REGNUM. */ void assert_regnum (int regnum) const; @@ -175,9 +172,9 @@ protected: bool m_has_pseudo; /* The register buffers. */ - gdb_byte *m_registers; + std::unique_ptr m_registers; /* Register cache status. */ - register_status *m_register_status; + std::unique_ptr m_register_status; friend class regcache; friend class detached_regcache;