From patchwork Tue Oct 10 18:03:11 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 23429 Received: (qmail 98706 invoked by alias); 10 Oct 2017 18:03:37 -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 98632 invoked by uid 89); 10 Oct 2017 18:03:36 -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: sesbmg23.ericsson.net Received: from sesbmg23.ericsson.net (HELO sesbmg23.ericsson.net) (193.180.251.37) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 10 Oct 2017 18:03:34 +0000 Received: from ESESSHC015.ericsson.se (Unknown_Domain [153.88.183.63]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id 57.79.03220.47B0DD95; Tue, 10 Oct 2017 20:03:32 +0200 (CEST) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.63) with Microsoft SMTP Server (TLS) id 14.3.352.0; Tue, 10 Oct 2017 20:03:31 +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 AM3PR07MB308.eurprd07.prod.outlook.com (2a01:111:e400:881b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.5; Tue, 10 Oct 2017 18:03:29 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 2/4] Use std::vector for traceframe_info::tvars Date: Tue, 10 Oct 2017 14:03:11 -0400 Message-ID: <1507658593-28825-2-git-send-email-simon.marchi@ericsson.com> In-Reply-To: <1507658593-28825-1-git-send-email-simon.marchi@ericsson.com> References: <1507658593-28825-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 X-ClientProxiedBy: SN2PR00CA0038.namprd00.prod.outlook.com (2603:10b6:804:1::48) To AM3PR07MB308.eurprd07.prod.outlook.com (2a01:111:e400:881b::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5fcb69b5-8176-4a8b-5c14-08d5100936e8 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075); SRVR:AM3PR07MB308; X-Microsoft-Exchange-Diagnostics: 1; AM3PR07MB308; 3:pmEqCE5sGzisltz1wS4NS3zN5cpfMDXqoA0w5qY+vbD1RdIgzWcRMp7E6Q9fkCooZIqHY/lBVxQOdIb36BKL7LddeMYm7YXPXHIB2xJ5FJRwkgYgoq4f6ZYRDd8GaYNo0hO14M8DSc7goz+oAt01hXuWWSL9P/SS8NDNTXg0ihI/AlpUrsm/ZlMD1PdUUG8uDZ37SWxAvZrsJ8dkIaJea+gGP2OTAJgE2cSnNyQ6a75Z9/iFlXzEggErmEfk3Quk; 25:DyujCakhzEYsPz8J04m5CxLuIOO79eQRlfvBbzGDgFFGoack+loxgb/c6lXTeA1hSfm1sjxszYqJLWFGwqRXZgqVvhxe68hjipmvWj8uFwZs4HlTF0xEgtzs+kIAr/n320Zra2Tj3bUwxcdJT47N5NTCWBvBSeFKSVgBCkf7IjaNWv7xg/BAmprkf1yXWhnBzGEF99pW6Fzy+1AuFpjQWO5x5es0nbf8nVdIB7bpP0f7sUO4S/lru2LSbNr1J/6fQjLOJUsgpJD4uj8Xepq71glTJwHynizNcOnmg14BR2Bafi7Lq1MKqK58BIhV5iqAuRlBiocwDejjFv2pm1ThbExcRWKDg3I1S+63MP2QQc4=; 31:RkNzFebb6pj+rtD+p60npFrEah06hHKlUdAbHCgTgb/by7j9QkF2gNBMcwv3Zq/PQJ+eE1620YDpYHgE9U7xLhYor2qysToChIVfBTDNXyHhIoJ25SspPeWTotUZCJt+8l9Tqhe04dZGeH7zHk72VtxJDEofR1xC5FyDsYxxITbxMyDyI8W5CuOI4AenbfPKcJD5JDhpRlh8cbpR2v/Lto1KBQ4FYuTCR3nphZSzWlY= X-MS-TrafficTypeDiagnostic: AM3PR07MB308: X-Microsoft-Exchange-Diagnostics: 1; AM3PR07MB308; 20:nhtobJVA+TQJy2KEoshQ8ZeSedED+0SqHSK+H7+QEqCnif/9Iaer166WBqwV6OiXkjOX6EIyxReT2ZhdoR/+upkqfHOLR8FJQeRz03eD+aD8myGRr7Gd9txGubG4EXgvtnSxUuic32ou+V/FYHhuw1jfUEOMJRKJ1m4daFNRSLmsuZlb3/7+8eKuOKNMVY9D8WR8DrVQdWZeUVGYAVGj2spZEtlVsszFjYDFqnpKQX0ZOo5wwtgPV18COMmogEK5boieNheXUvkahpMVSvcmqKnjf+7xdaepj/qkmJekwdGekaoHKvPllkHKRFt88Au02Pc4C9IUL7Wmy1FMDONKohuQzlKNOsAOxyitdF/ZKhDpAHd63jZRkW8vmPceHHxle4ewek9LABg6sfDk7vktpD5njRqYoyciPPEDQUKAoeyHZOjqxCmr4r17Rf7BAX6BCKEcKk1oITG2w+w6cuiq21ceACWIueBzFWNXclL6mNFz8nmg2phPQZLu6OWHU7bK; 4:pI1PDQShUDtcJP5f8leFgVz0HMH17WhRVB3RmxQSOjvgrTSi6evWUUX87uVR+uHBOOEfcSDs6QFyAqOA360ay/FZkFhGMplUg2uMcFCL7srD0hMml3THuh52DwGrWFgUpG24umBFLj7iYoxrCJS4gFeJC3hkAB6K3P/9BaixK5msavFqF35nHC0s0hrAXBBNLvi1q5OQDJOPAtwY252N0Fy/XjTKyz8RnmBKZ0KvUD7vSNv24qJraOjV8LUiJkbR X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(6041248)(20161123555025)(20161123560025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM3PR07MB308; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM3PR07MB308; X-Forefront-PRVS: 04569283F9 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(376002)(346002)(189002)(199003)(54534003)(50466002)(25786009)(5660300001)(33646002)(2906002)(16586007)(316002)(4326008)(106356001)(8676002)(81166006)(575784001)(8936002)(81156014)(189998001)(48376002)(86362001)(6506006)(68736007)(478600001)(6486002)(97736004)(6512007)(5003940100001)(50986999)(105586002)(3846002)(2351001)(2361001)(7736002)(16526018)(101416001)(36756003)(76176999)(2950100002)(6116002)(6916009)(53936002)(6666003)(50226002)(66066001)(305945005)(47776003); DIR:OUT; SFP:1101; SCL:1; SRVR:AM3PR07MB308; H:elxacz23q12.ca.am.ericsson.se; 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) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM3PR07MB308; 23:3rCa0wQEi3DIVa/3t4r80F6P72GQn5YwRJqOuv383H?= =?us-ascii?Q?ZPh1wt9FA5QYdZ+KAez7FF8mP2ri4OPiZRjDNPShpxXzdVwswhm0z39dqLsx?= =?us-ascii?Q?Xl55Dc9tSU2UybZ01ZTRMo2REmDOz80DszXSC6AFRq1ywMmo+08pVR05dwr4?= =?us-ascii?Q?U/wgx4v/fBt63F/N9So+UH6/RkTM+G+F7Xdw37TnF/g3P5eDBKvo18tJBoZv?= =?us-ascii?Q?uN5RBbXnOOqi7L3eZ7+/B3IcHoYdZsgRRhoj7d3+N85AxCA+/j1j+PqhSvZe?= =?us-ascii?Q?+vOACzTPH7cQ12kmWvzGCoGvj/VzwAPv8KakgsBularafqdBWbk3TFU6yObj?= =?us-ascii?Q?bnfb1Abqa9ZJBV4gnArFbHVAW9Bj3KLDpOuMJVSIeIHsEkwF28nCBftVecUs?= =?us-ascii?Q?Gimne53g33k9CGtIN1YxJcUrHmWt5M4j6lTziap8Omg9ipxAEBKb9hoBzUPv?= =?us-ascii?Q?tRITJldZmaFn66bh/aszrP9nrWbjI1FQOhmxnv6yXIarV0FzQW30hWm+fjQ0?= =?us-ascii?Q?r6wTObpE88pqYrNI6JwjuLuKsXIXEK9hxdH1U+RcVcfVGGs/RbGCGZtu2F2t?= =?us-ascii?Q?ScEryQMiAu4nJgSkDyvkoBwwli1a6R2Bt7AnO2EROoYnv1/Cijn4YkHBlF6f?= =?us-ascii?Q?2YCaLRMpUJeJF5ae1bAT4rCEJFP08srGkrOZqPUNuY4YF0N0SSiVLNgXW9mJ?= =?us-ascii?Q?a7xxlRd6v1ImybvEckZaHoPPd5TNceRb/cojckFWZ3B3a+Q1j/zFlNkTwOvE?= =?us-ascii?Q?knJkW0T8PO+Lhr0a3WknOso5caU8YvW/xoeh9BFIhbmEMqd5H/I9CaK5473T?= =?us-ascii?Q?8Hrt7u4hLTmumcDC3zbF4jwLSxuIQxDEOKKLIP+/op5GKphMU4z4H1lYBF/6?= =?us-ascii?Q?BGB4tVq3n4tn6jqepGD02th5Dww7zZ5z2VeCVJX5OLuUloO/s+4muMiKb0D0?= =?us-ascii?Q?JsgzQhUdE4C7XYh6LW0iVALT381HSHaHcHlaKALqtkBWOUI4bGtoJVHVOHns?= =?us-ascii?Q?xXl5kro+2gSe6yhtnr2MY6SlDEF/sLPJVy9kaAL6bl9wYl9Lh9uMJryb5qyR?= =?us-ascii?Q?tyjGo/MJVS40xi8QmyCVUtRL4L8b94nsoUtNNU59jHdvAqyk+9HAM2XsR86m?= =?us-ascii?Q?TnGOrX2XhoIDCth1STBlKu+ZJVWPdbh0JjKnFfDnoxr9L7CYWujImDmEd3Pw?= =?us-ascii?Q?2Z2BtKgAl23Bk=3D?= X-Microsoft-Exchange-Diagnostics: 1; AM3PR07MB308; 6:7g+aNiBpMAMt5o0i+gSZ0Qp4ChawvO7oTSfKbTXvjyIb6d74YsF3VctVhQmE8Rb07HBBDI5+r1LifbcVmwscbCnW4ScuCk701n2SltE7YifnU2sZoQ6yg+/E/OlrsyG7xrTHBIOG2jgntRGb8N6vpomJGbR4O/wX/f67KNhgDGDjVteLNhpRovjIlPg+Cs7FxZDltc9iN2ZJvH2yWqDa+tZLa4Qf9Bbz5KQYKLDbe415q4Cw6QB7PvVSQ3gHhrg5s1PstxvhAbVKwyy9eVRCBXn2Z86ZzqDjV4RJRjZW8X3wjrBP27PELoCfrzvBJ58xFn4nTtO+mn4LMuD2z9oTew==; 5:+aqYZYObjwLyHyu/+2UOb6E5xvPcx4kUQYeCy1gYGxF1aXdFbFvMyCLA6pqFLpVoOQPm6J3Uc1ZvbR2lX2RrOx7kgMlB3nZhCICY53DBkASZXoombUOpl+j+5xCUpVRCoxVF/gpXis8CtA1YREU1Ag==; 24:/cfNxlAOmWMZTy5tBN5rVle/AoeZYBvirXz8ZQikFG6Fed1CxYxPlZA0RV5SXV0uEVySjYU0CnfryG0+2AXTmzjw4wKAB7eqSqpQD/q+bMU=; 7:GMlcJhOXgJMk5LAjCdx+3xqBuxuirwnoL/8BVXidYmSLaUL9lCxKL9B2WG78DS3bGyh2YSECY54camtTFepN9M1qmSpOhTSlamv9QjcS0hce/Na/4DHK+X7Zs/zaeA1qLqHEaMyXn9mTKwXgqxZJI2FHiHIPgoHtqHqTh5qOO8EfNlPKTBnlyFxRbpTeXohtC3QT91dJPdEgCvcq1E5MPb5F72r6U87BrvGO1n0N/z0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Oct 2017 18:03:29.7084 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR07MB308 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes From: Simon Marchi Straightforward change to get rid of a VEC. We need to new/delete traceframe_info instead of malloc/free it. I found three places that allocate a traceframe_info (ctf_traceframe_info, tfile_traceframe_info and parse_traceframe_info) and only one that frees it (free_traceframe_info). gdb/ChangeLog: * tracepoint.h (struct traceframe_info) : Change type to std::vector. * tracepoint.c (free_traceframe_info): Deallocate with delete. (traceframe_info_start_tvar): Adjust to vector change. (parse_traceframe_info): Allocate with new. * ctf.c (ctf_traceframe_info): Allocate with new, adjust to vector change. * tracefile-tfile.c (build_traceframe_info): Adjust to vector change. tfile_traceframe_info): Allocate with new. * mi/mi-main.c (mi_cmd_trace_frame_collected): Adjust to vector change. --- gdb/ctf.c | 4 ++-- gdb/mi/mi-main.c | 5 +---- gdb/tracefile-tfile.c | 4 ++-- gdb/tracepoint.c | 8 +++----- gdb/tracepoint.h | 4 ++-- 5 files changed, 10 insertions(+), 15 deletions(-) diff --git a/gdb/ctf.c b/gdb/ctf.c index d719163..183ee34 100644 --- a/gdb/ctf.c +++ b/gdb/ctf.c @@ -1638,7 +1638,7 @@ ctf_trace_find (struct target_ops *self, enum trace_find_type type, int num, static struct traceframe_info * ctf_traceframe_info (struct target_ops *self) { - struct traceframe_info *info = XCNEW (struct traceframe_info); + traceframe_info *info = new traceframe_info; const char *name; struct bt_iter_pos *pos; @@ -1682,7 +1682,7 @@ ctf_traceframe_info (struct target_ops *self) def = bt_ctf_get_field (event, scope, "num"); vnum = (int) bt_ctf_get_uint64 (def); - VEC_safe_push (int, info->tvars, vnum); + info->tvars.push_back (vnum); } else { diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c index b9d3cba..f0b9577 100644 --- a/gdb/mi/mi-main.c +++ b/gdb/mi/mi-main.c @@ -2717,12 +2717,9 @@ mi_cmd_trace_frame_collected (const char *command, char **argv, int argc) /* Trace state variables. */ { - int tvar; - int i; - ui_out_emit_list list_emitter (uiout, "tvars"); - for (i = 0; VEC_iterate (int, tinfo->tvars, i, tvar); i++) + for (int tvar : tinfo->tvars) { struct trace_state_variable *tsv; diff --git a/gdb/tracefile-tfile.c b/gdb/tracefile-tfile.c index 7288e7c..0075581 100644 --- a/gdb/tracefile-tfile.c +++ b/gdb/tracefile-tfile.c @@ -1075,7 +1075,7 @@ build_traceframe_info (char blocktype, void *data) int vnum; tfile_read ((gdb_byte *) &vnum, 4); - VEC_safe_push (int, info->tvars, vnum); + info->tvars.push_back (vnum); } case 'R': case 'S': @@ -1095,7 +1095,7 @@ build_traceframe_info (char blocktype, void *data) static struct traceframe_info * tfile_traceframe_info (struct target_ops *self) { - struct traceframe_info *info = XCNEW (struct traceframe_info); + traceframe_info *info = new traceframe_info; traceframe_walk_blocks (build_traceframe_info, 0, info); return info; diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c index 2f1b7a0..f3f47c2 100644 --- a/gdb/tracepoint.c +++ b/gdb/tracepoint.c @@ -199,9 +199,8 @@ free_traceframe_info (struct traceframe_info *info) if (info != NULL) { VEC_free (mem_range_s, info->memory); - VEC_free (int, info->tvars); - xfree (info); + delete info; } } @@ -4025,7 +4024,7 @@ traceframe_info_start_tvar (struct gdb_xml_parser *parser, = (const char *) xml_find_attribute (attributes, "id")->value; int id = gdb_xml_parse_ulongest (parser, id_attrib); - VEC_safe_push (int, info->tvars, id); + info->tvars.push_back (id); } /* Discard the constructed trace frame info (if an error occurs). */ @@ -4072,10 +4071,9 @@ static const struct gdb_xml_element traceframe_info_elements[] = { struct traceframe_info * parse_traceframe_info (const char *tframe_info) { - struct traceframe_info *result; + traceframe_info *result = new traceframe_info; struct cleanup *back_to; - result = XCNEW (struct traceframe_info); back_to = make_cleanup (free_result, result); if (gdb_xml_parse_quick (_("trace frame info"), diff --git a/gdb/tracepoint.h b/gdb/tracepoint.h index ffa645b..625415c 100644 --- a/gdb/tracepoint.h +++ b/gdb/tracepoint.h @@ -32,10 +32,10 @@ struct traceframe_info { /* Collected memory. */ - VEC(mem_range_s) *memory; + VEC(mem_range_s) *memory = NULL; /* Collected trace state variables. */ - VEC(int) *tvars; + std::vector tvars; }; /* A trace state variable is a value managed by a target being