From 17d08cd4137063dbc43d9989b9a5cb315171174f Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Fri, 30 Mar 2018 17:18:55 -0400 Subject: [PATCH] Use std::vector and std::string instead of VEC(char_ptr) in gdbserver tdesc This is a straightforward replacement, no change in behavior are intended/expected. gdb/gdbserver/ChangeLog: * tdesc.h (struct target_desc) : Change type to std::vector. * tdesc.c (target_desc::~target_desc): Adjust to std::vector changes. (tdesc_get_features_xml): Likewise. (tdesc_create_feature): Likewise. --- gdb/gdbserver/ChangeLog | 9 +++++++++ gdb/gdbserver/tdesc.c | 13 +++---------- gdb/gdbserver/tdesc.h | 2 +- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 8e6afef4744..8e0f13a86a3 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,12 @@ +2018-03-30 Simon Marchi + + * tdesc.h (struct target_desc) : Change type to + std::vector. + * tdesc.c (target_desc::~target_desc): Adjust to std::vector + changes. + (tdesc_get_features_xml): Likewise. + (tdesc_create_feature): Likewise. + 2018-03-26 Alan Hayward * regcache.c (find_register_by_number): Return a ref. diff --git a/gdb/gdbserver/tdesc.c b/gdb/gdbserver/tdesc.c index cec7a66f974..9f00ecf9386 100644 --- a/gdb/gdbserver/tdesc.c +++ b/gdb/gdbserver/tdesc.c @@ -27,12 +27,6 @@ target_desc::~target_desc () xfree ((char *) arch); xfree ((char *) osabi); - - char *f; - - for (i = 0; VEC_iterate (char_ptr, features, i, f); i++) - xfree (f); - VEC_free (char_ptr, features); } bool target_desc::operator== (const target_desc &other) const @@ -127,7 +121,7 @@ tdesc_get_features_xml (target_desc *tdesc) { /* Either .xmltarget or .features is not NULL. */ gdb_assert (tdesc->xmltarget != NULL - || (tdesc->features != NULL + || (!tdesc->features.empty () && tdesc->arch != NULL)); if (tdesc->xmltarget == NULL) @@ -147,9 +141,8 @@ tdesc_get_features_xml (target_desc *tdesc) buffer += ""; } - char *xml; - for (int i = 0; VEC_iterate (char_ptr, tdesc->features, i, xml); i++) + for (const std::string &xml : tdesc->features) { buffer += "features, xstrdup (xml)); + tdesc->features.emplace_back (xml); #endif return tdesc; } diff --git a/gdb/gdbserver/tdesc.h b/gdb/gdbserver/tdesc.h index a62544341cd..85139d948c8 100644 --- a/gdb/gdbserver/tdesc.h +++ b/gdb/gdbserver/tdesc.h @@ -54,7 +54,7 @@ struct target_desc : tdesc_feature const char *xmltarget = NULL; /* XML features in this target description. */ - VEC (char_ptr) *features = NULL; + std::vector features; /* The value of element in the XML, replying GDB. */ const char *arch = NULL; -- 2.30.2