From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18685 invoked by alias); 31 Oct 2017 01:42:30 -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 18579 invoked by uid 89); 31 Oct 2017 01:42:30 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.3 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=minimize, Identify 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, 31 Oct 2017 01:42:28 +0000 Received: from ESESSHC023.ericsson.se (Unknown_Domain [153.88.183.87]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id 9A.95.03220.205D7F95; Tue, 31 Oct 2017 02:42:26 +0100 (CET) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.87) with Microsoft SMTP Server (TLS) id 14.3.352.0; Tue, 31 Oct 2017 02:42:25 +0100 Received: from elxacz23q12.localdomain (70.81.137.44) by DBXPR07MB319.eurprd07.prod.outlook.com (2a01:111:e400:941d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.197.4; Tue, 31 Oct 2017 01:42:23 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH 08/10] Make tdesc_type::name an std::string Date: Tue, 31 Oct 2017 01:42:00 -0000 Message-ID: <1509414120-14659-9-git-send-email-simon.marchi@ericsson.com> In-Reply-To: <1509414120-14659-1-git-send-email-simon.marchi@ericsson.com> References: <1509414120-14659-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 Content-Type: text/plain X-ClientProxiedBy: BN6PR1101CA0023.namprd11.prod.outlook.com (2603:10b6:405:4a::33) To DBXPR07MB319.eurprd07.prod.outlook.com (2a01:111:e400:941d::13) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8c731223-acaa-4e73-0537-08d52000a295 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(2017052603238);SRVR:DBXPR07MB319; X-Microsoft-Exchange-Diagnostics: 1;DBXPR07MB319;3:NMboOlE2CPtmzX8MjDwo4QY4pTcDFidcXmKGrCX/uCeoM3/8JRpJ8hxfjQGnq2HK8UUjuPAkO3MN+a07I7quLbDo23RzTw2HYVuYFOpt3MtKT6aCAtxqXRXIPva/jtTTAvmBV0FdQtrx+0W9/ulj41foOMIOuR9ZLcFDtCRcDas5cl+8wXpXQwgDDmvFRhzqNWnZqKOgjkPSo0xbO+mUn2xXRHVcmftwCikPvNswASYRAdimuLazXpwr4aMugVN4;25:tNAesFwmMWn2UXRNIi4PxBtML0X3388RAv0H4sZ4vExhi+zKxAj7lzQjhCadSBGaGJ+SvONAhhhega9XgdpcGBiCZY0zUslfnAY+uws+49OaE2sSeynpzmPpxl2D/7JaEONSbRCq9qfi14HQNvkKEbPpUL/XIYfcwVTAp6o0zQw1o5yXdZBWMAFblc3bVKM+MPeRlrjcq8Vx3FGJTfmTAkHXvECrGWMtesITroTBuiARYu6+yQwFAqyhHK92SafX8zFIizuuTHJUresPSHE1keBNN31QMpDmLKrn76cwT/MsKaVu78jgG8qaaUz8hfoDmyUZGTa8a2FqM0TX3DvbZrxoFoNSfkJkEbD2EWCDIYk=;31:OaHaaWJbZPdEozTDDHCksqrvz/ZCN5lqNyUntpod8DHiVicd9aQf5JAH//GeryVpnkJ3DXLqn9oEEJCrWXRu22oOo/ATUvL6wLN97eH9oiVM7BmwzHZqiSUnNzfNq7+RFpGROYclCDnpGmTW+Gj3rojHf0bbJVvti7JQFngOTLNdciqjmwAxA16rS0rQa8iHr2ZrDmE6zqR3KlpXY7Q70FwzuaescGZB2+cOhFvpgKs= X-MS-TrafficTypeDiagnostic: DBXPR07MB319: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; X-Microsoft-Exchange-Diagnostics: 1;DBXPR07MB319;20:VR5yPenbM1vhdJdkj1JphDlZ8c5F/5AC2gqo4U4y6JJx2O73H5EGHLbFPsMtzK1jxEMJ5JS7jiEv6UAjK1QrV6KUJkQ9Wy82YQN1542xr6ESuilG4SmG5dNtCdNHZMKzxv1AQZPh50RN9H/FQqJRlrBcyOD7598OsqURcKVQqD4rydSn6DEDg3nmhOEtrHtQbt/4ZVEB0jEY3ljqrm+OREsqZFmffwPaVKGWN4p8MHhzpeN/MtoxSnHwIqQIOKy7kgoYBxTWeq0Hc6CWDU/uWz2/wd1W4sog1k7/sYiZ/WiJKMS2GIkjpx7vMQpaT4HOuEe42XXjcBG5bf6YBoRqMwxsmd22J0U1XOI5nnzhSsNv3jYqhmElXI/0GRvslE1tnzWrYxRji4hFpAnxP+ocDNM0AzaWXT4PrjfvPcYeeG+br5esUB5qf6tL3jBuFQJaPgFua5J3fb0ScixQC+DugXm0D0++EChoWh3Px8C79HWavySWPomAYctya/F9NtFc;4:dmKMpHtV/PinYcQdAuAodYJ2Q88HQcmYbqD1qrgf8y2w3ofKv6RAXwLLfressdvT0lVTcUak2gJYZ4f8tvO3cMWbsV6tiBmT5LGykylAY30ZR07IuBgLA1NCxVl1JPhq+MyNfYXLJv2RlPUfm24qBT0wq1saRRQ/vu7NZQLxsnqbTV2cgpnsZQ+1sH5xwPcyVyKgcDFK1w4DAwm2JzR8PF4jAwYDkLsjEs4sZU74h+2wU0FgxeuTOuy+Xuueh6VKRGdg7oyWFkqWy2SMaTxhFQ== 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)(8121501046)(5005006)(100000703101)(100105400095)(3231020)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123558100)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123555025)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DBXPR07MB319;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DBXPR07MB319; X-Forefront-PRVS: 04772EA191 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(376002)(39860400002)(346002)(189002)(199003)(54534003)(6916009)(16526018)(7736002)(2906002)(6666003)(47776003)(68736007)(4326008)(3846002)(478600001)(305945005)(66066001)(106356001)(36756003)(105586002)(53936002)(25786009)(2950100002)(6512007)(50226002)(2361001)(6116002)(2351001)(5003940100001)(16586007)(76176999)(33646002)(101416001)(5660300001)(6506006)(6486002)(316002)(50986999)(81156014)(81166006)(8936002)(8676002)(50466002)(97736004)(48376002)(86362001)(189998001);DIR:OUT;SFP:1101;SCL:1;SRVR:DBXPR07MB319;H:elxacz23q12.localdomain;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;DBXPR07MB319;23:fujYo1JIOLDfeMW7TAhsZ8ysSW3IN4NXtL9aPd6cux?= =?us-ascii?Q?VtMz+pUEEGH7J7RoUTC8e0DsZO9Fy+rWSAMgukeOJsVyoFxbStM8MgzOxoIo?= =?us-ascii?Q?z+yFeSZjpfe/MN6jTqAleVIpmEj29xncPKMPMy9dKCua95WBeLdos5soWYkv?= =?us-ascii?Q?V4hLjIm35JwdpJ7vYx3sj+CcHDF3ErsiSPK2JK4LKD/Rov8u3hdun6lCUuVa?= =?us-ascii?Q?btV68Cuh2VACGn4Ohw94v2qjKnvGIv9uZtQ85cUKsRzHGCHRptElNozmPQqr?= =?us-ascii?Q?C8d6OH5NDUONKfc9nvDW+qD8CMCG5KVAa+8Chh3nDfwQr5KJIpQCqsD5zvNV?= =?us-ascii?Q?j15txkwA11XjNLyXCSqR4zqhxPcIOwbC9wa0/hlgN20NVnGSx4brMr/4QqUT?= =?us-ascii?Q?Cw8h0rbv8vfsbR0PbCyuTnRRbtBSnbSbwMPRtOxShiVH2yM4+8yifTMY/NpF?= =?us-ascii?Q?WTUFnqi/cHTAw3pExQ1BanmnzWkK0ofzo2EJJktbMCdVC+PxXMyyuJoH9Nc9?= =?us-ascii?Q?o3v2OJZxpBWBhLyUzQfWWL513WJi0woafI3Wpf4IwhXcuCw2FImVWxJnu83Q?= =?us-ascii?Q?ehJqiTiBBASrfsYitzGo6uhhG1Etip3/LCXUT1HLRRo0fX2zpIXSI03U6gXk?= =?us-ascii?Q?8NAomWJd0uNI+kRtYoSizlkGG5CrhEEsGb6isSta9hKK0QU4wP9UFgIaFTZj?= =?us-ascii?Q?6cFbqxQV58arYjuwwAIhSZLoqkvFN/FJuoZin+Hvp1v2zV00P0TTToO8F9Tn?= =?us-ascii?Q?qqkFrfSjwxs/c20I9pTXEiFbSRJraaUVy5KCnA0EuG2Liyvj8zSCLLvKVD9D?= =?us-ascii?Q?0Pm/BZBCb/83ezxqJ/6Kq4plV22gNuCjv6rALPWCr0P8PyK/65L74HQgrLZj?= =?us-ascii?Q?Qk+S9JCa0SsDq4++nIHiP8ocjR0hUfbbXX97JCAK8AonTs7vhIhbzQogPnG1?= =?us-ascii?Q?1LIbHGK0tbIcXQS9rzfi3XxSPxDmSZWC24bGXat+mZVrtTXHq5Ru7WSMQcMW?= =?us-ascii?Q?XeReEAOpGBfhTp8UvnaTKDl5zX60FHpalzG6ygQLcWnBtdenibCYXFqwdx0P?= =?us-ascii?Q?ab41tLsnNddr2ACBsEDDC3p1+Yd1W6xFiLOWIH2scfGJDY2pvewtjBldRCV/?= =?us-ascii?Q?U8GzoNeRHgaLNnuazKPCfxnIGNPZX6?= X-Microsoft-Exchange-Diagnostics: 1;DBXPR07MB319;6:WX1kujjDoQzehTEa4oAbP6T2bkLLt+Vh9JTYJjlIENjppRxHce6uTCtF4Zvcfj4GLrhN0AESQL8DvPfR9oRFi8DEogUGTf9zxDmAvhxJx8ydVxVZCvcqaMSpxUZVd3mFueJvWjVbCK4NR1zymUhaUcHoiPvkg28Yh2SgDzsN8cCQf7qPOBrTT8Zqtoo2VmWn1qcQWfxo3IFYKgtuWf8TGHNkfkmQL4pCb8RmxXw7eZPtvm8SdPej1ltk4kcFu3xzbGm+ynEKmp4yQDKKe6LAqFurrZsI5Z8SUEgDWhcJsBXeAhFGT8zEE5eL4jKI9VvgRYQmM6QxN4iPfqH8/vHj1Z27qvvV0hpW2aRaZzgj7XY=;5:6+07miun8bkvzmebAEqrtCi6OW8u7QgIwgtOwCzaZZYox5ZViWumo1zCFd/qA6jB1r6GjcqiCV+k2MeM1sC49CSQlSNbzVm+3JCtWPdRMzoDomgWW94K9yphI7t8V7daQvu1GYWQq9F2bpcQzwfD3HOVh+Y1uv5uh1Jkdv34ywE=;24:/IvbZip/ntAnk8fGu4KpsAfoJpRuPOEQ6aDMdwpOQViHfPXwxMDFxTTTRWDcoBBDnzLsZfuMSlwk9ybAat4kLYDqWj9Cb0BYlUJGS8fyC2w=;7:uEj2a2eFwxcBc3ElFsdg89t7omjhyoyIYM4kjZ6/vkf/wGCGE0rGNZE3KQvPn/+maRSXw/52X0h/yuCgQ0/wkYf9KZw1Pj24fGUejlJ4vRhA9JQCRHFcpnip10Hk/i7jW3V2L97sWpFC/xHXbGNg2raxqLJZHqhRO+wC4d4p5ZKo/dtcK4jjHMPHCLXteReWspJBs/qBW3LshLVnvHhwowHsfxl/PkJ+DB+r9o6HqtEVyA3L7MxwckIGyzgKajum SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Oct 2017 01:42:23.7713 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8c731223-acaa-4e73-0537-08d52000a295 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBXPR07MB319 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2017-10/txt/msg00920.txt.bz2 From: Simon Marchi This patch makes tdesc_type::name an std::string. This way, we don't need to free it manually in ~tdesc_type. I think the comment on top of name is not correct, the string is always malloc'ed. gdb/ChangeLog: * target-descriptions.c (struct tdesc_type) : Change type to std::string. <~tdesc_type>: Don't manually free name. : Adjust. (tdesc_named_type): Adjust. (tdesc_find_type): Adjust. (tdesc_gdb_type): Adjust. (class print_c_tdesc) : Adjust. --- gdb/target-descriptions.c | 51 ++++++++++++++++++++++------------------------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/gdb/target-descriptions.c b/gdb/target-descriptions.c index 13d6884..77a9c1c 100644 --- a/gdb/target-descriptions.c +++ b/gdb/target-descriptions.c @@ -194,8 +194,8 @@ enum tdesc_type_kind struct tdesc_type : tdesc_element { - tdesc_type (const char *name_, enum tdesc_type_kind kind_) - : name (xstrdup (name_)), kind (kind_) + tdesc_type (const std::string &name_, enum tdesc_type_kind kind_) + : name (name_), kind (kind_) { memset (&u, 0, sizeof (u)); } @@ -224,15 +224,12 @@ struct tdesc_type : tdesc_element default: break; } - xfree ((char *) name); } DISABLE_COPY_AND_ASSIGN (tdesc_type); - /* The name of this type. If this type is a built-in type, this is - a pointer to a constant string. Otherwise, it's a - malloc-allocated string (and thus must be freed). */ - const char *name; + /* The name of this type. */ + std::string name; /* Identify the kind of this type. */ enum tdesc_type_kind kind; @@ -262,7 +259,7 @@ struct tdesc_type : tdesc_element bool operator== (const tdesc_type &other) const { - return (streq (name, other.name) && kind == other.kind); + return name == other.name && kind == other.kind; } bool operator!= (const tdesc_type &other) const @@ -761,12 +758,12 @@ tdesc_named_type (const struct tdesc_feature *feature, const char *id) { /* First try target-defined types. */ for (const tdesc_type_up &type : feature->types) - if (strcmp (type->name, id) == 0) + if (type->name == id) return type.get (); /* Next try the predefined types. */ for (int ix = 0; ix < ARRAY_SIZE (tdesc_predefined_types); ix++) - if (strcmp (tdesc_predefined_types[ix].name, id) == 0) + if (tdesc_predefined_types[ix].name == id) return &tdesc_predefined_types[ix]; return NULL; @@ -789,7 +786,7 @@ tdesc_find_type (struct gdbarch *gdbarch, const char *id) if (reg->reg && reg->reg->tdesc_type && reg->type - && strcmp (id, reg->reg->tdesc_type->name) == 0) + && reg->reg->tdesc_type->name == id) return reg->type; } @@ -850,7 +847,7 @@ tdesc_gdb_type (struct gdbarch *gdbarch, struct tdesc_type *tdesc_type) break; } - type = tdesc_find_type (gdbarch, tdesc_type->name); + type = tdesc_find_type (gdbarch, tdesc_type->name.c_str ()); if (type) return type; @@ -879,7 +876,7 @@ tdesc_gdb_type (struct gdbarch *gdbarch, struct tdesc_type *tdesc_type) field_type = tdesc_gdb_type (gdbarch, tdesc_type->u.v.type); type = init_vector_type (field_type, tdesc_type->u.v.count); - TYPE_NAME (type) = xstrdup (tdesc_type->name); + TYPE_NAME (type) = xstrdup (tdesc_type->name.c_str ()); return type; } @@ -891,7 +888,7 @@ tdesc_gdb_type (struct gdbarch *gdbarch, struct tdesc_type *tdesc_type) int ix; type = arch_composite_type (gdbarch, NULL, TYPE_CODE_STRUCT); - TYPE_NAME (type) = xstrdup (tdesc_type->name); + TYPE_NAME (type) = xstrdup (tdesc_type->name.c_str ()); TYPE_TAG_NAME (type) = TYPE_NAME (type); for (ix = 0; @@ -953,7 +950,7 @@ tdesc_gdb_type (struct gdbarch *gdbarch, struct tdesc_type *tdesc_type) int ix; type = arch_composite_type (gdbarch, NULL, TYPE_CODE_UNION); - TYPE_NAME (type) = xstrdup (tdesc_type->name); + TYPE_NAME (type) = xstrdup (tdesc_type->name.c_str ()); for (ix = 0; VEC_iterate (tdesc_type_field, tdesc_type->u.u.fields, ix, f); @@ -976,7 +973,7 @@ tdesc_gdb_type (struct gdbarch *gdbarch, struct tdesc_type *tdesc_type) struct tdesc_type_field *f; int ix; - type = arch_flags_type (gdbarch, tdesc_type->name, + type = arch_flags_type (gdbarch, tdesc_type->name.c_str (), tdesc_type->u.u.size * TARGET_CHAR_BIT); for (ix = 0; VEC_iterate (tdesc_type_field, tdesc_type->u.u.fields, ix, f); @@ -1001,7 +998,7 @@ tdesc_gdb_type (struct gdbarch *gdbarch, struct tdesc_type *tdesc_type) type = arch_type (gdbarch, TYPE_CODE_ENUM, tdesc_type->u.u.size * TARGET_CHAR_BIT, - tdesc_type->name); + tdesc_type->name.c_str ()); TYPE_UNSIGNED (type) = 1; for (ix = 0; VEC_iterate (tdesc_type_field, tdesc_type->u.u.fields, ix, f); @@ -1020,7 +1017,7 @@ tdesc_gdb_type (struct gdbarch *gdbarch, struct tdesc_type *tdesc_type) internal_error (__FILE__, __LINE__, "Type \"%s\" has an unknown kind %d", - tdesc_type->name, tdesc_type->kind); + tdesc_type->name.c_str (), tdesc_type->kind); } @@ -1917,10 +1914,10 @@ public: case TDESC_TYPE_VECTOR: printf_unfiltered (" field_type = tdesc_named_type (feature, \"%s\");\n", - type->u.v.type->name); + type->u.v.type->name.c_str ()); printf_unfiltered (" tdesc_create_vector (feature, \"%s\", field_type, %d);\n", - type->name, type->u.v.count); + type->name.c_str (), type->u.v.count); break; case TDESC_TYPE_STRUCT: case TDESC_TYPE_FLAGS: @@ -1928,7 +1925,7 @@ public: { printf_unfiltered (" type = tdesc_create_struct (feature, \"%s\");\n", - type->name); + type->name.c_str ()); if (type->u.u.size != 0) printf_unfiltered (" tdesc_set_struct_size (type, %d);\n", @@ -1938,7 +1935,7 @@ public: { printf_unfiltered (" type = tdesc_create_flags (feature, \"%s\", %d);\n", - type->name, type->u.u.size); + type->name.c_str (), type->u.u.size); } for (int ix3 = 0; VEC_iterate (tdesc_type_field, type->u.u.fields, ix3, f); @@ -1947,7 +1944,7 @@ public: const char *type_name; gdb_assert (f->type != NULL); - type_name = f->type->name; + type_name = f->type->name.c_str (); /* To minimize changes to generated files, don't emit type info for fields that have defaulted types. */ @@ -1999,14 +1996,14 @@ public: case TDESC_TYPE_UNION: printf_unfiltered (" type = tdesc_create_union (feature, \"%s\");\n", - type->name); + type->name.c_str ()); for (int ix3 = 0; VEC_iterate (tdesc_type_field, type->u.u.fields, ix3, f); ix3++) { printf_unfiltered (" field_type = tdesc_named_type (feature, \"%s\");\n", - f->type->name); + f->type->name.c_str ()); printf_unfiltered (" tdesc_add_field (type, \"%s\", field_type);\n", f->name); @@ -2015,7 +2012,7 @@ public: case TDESC_TYPE_ENUM: printf_unfiltered (" type = tdesc_create_enum (feature, \"%s\", %d);\n", - type->name, type->u.u.size); + type->name.c_str (), type->u.u.size); for (int ix3 = 0; VEC_iterate (tdesc_type_field, type->u.u.fields, ix3, f); ix3++) @@ -2024,7 +2021,7 @@ public: f->start, f->name); break; default: - error (_("C output is not supported type \"%s\"."), type->name); + error (_("C output is not supported type \"%s\"."), type->name.c_str ()); } printf_unfiltered ("\n"); } -- 2.7.4