gdb: Remove a use of VEC from dwarf2read.{c,h}

Removes a use of VEC from dwarf2read.{c,h} and replaces it with
std::vector.  As far as possible this is a like for like replacement
with minimal refactoring.

There should be no user visible changes after this commit.

gdb/ChangeLog:

	* dwarf2read.c (struct type_unit_group) <tus>: Convert to
	std::vector.
	(build_type_psymtabs_reader): Update for std::vector.
	(build_type_psymtab_dependencies): Likewise.
	* dwarf2read.h: Remove use of DEF_VEC_P.
	(typedef sig_type_ptr): Delete.
This commit is contained in:
Andrew Burgess 2019-09-25 16:10:50 +01:00
parent 554ac434b0
commit df07e2c772
3 changed files with 18 additions and 11 deletions

View File

@ -1,3 +1,12 @@
2019-10-02 Andrew Burgess <andrew.burgess@embecosm.com>
* dwarf2read.c (struct type_unit_group) <tus>: Convert to
std::vector.
(build_type_psymtabs_reader): Update for std::vector.
(build_type_psymtab_dependencies): Likewise.
* dwarf2read.h: Remove use of DEF_VEC_P.
(typedef sig_type_ptr): Delete.
2019-10-02 Andrew Burgess <andrew.burgess@embecosm.com> 2019-10-02 Andrew Burgess <andrew.burgess@embecosm.com>
* btrace.c (btrace_maint_clear): Update to handle change from VEC * btrace.c (btrace_maint_clear): Update to handle change from VEC

View File

@ -620,7 +620,7 @@ struct type_unit_group
/* The TUs that share this DW_AT_stmt_list entry. /* The TUs that share this DW_AT_stmt_list entry.
This is added to while parsing type units to build partial symtabs, This is added to while parsing type units to build partial symtabs,
and is deleted afterwards and not used again. */ and is deleted afterwards and not used again. */
VEC (sig_type_ptr) *tus; std::vector <signatured_type *> *tus;
/* The compunit symtab. /* The compunit symtab.
Type units in a group needn't all be defined in the same source file, Type units in a group needn't all be defined in the same source file,
@ -8184,7 +8184,9 @@ build_type_psymtabs_reader (const struct die_reader_specs *reader,
attr = dwarf2_attr_no_follow (type_unit_die, DW_AT_stmt_list); attr = dwarf2_attr_no_follow (type_unit_die, DW_AT_stmt_list);
tu_group = get_type_unit_group (cu, attr); tu_group = get_type_unit_group (cu, attr);
VEC_safe_push (sig_type_ptr, tu_group->tus, sig_type); if (tu_group->tus == nullptr)
tu_group->tus = new std::vector <signatured_type *>;
tu_group->tus->push_back (sig_type);
prepare_one_comp_unit (cu, type_unit_die, language_minimal); prepare_one_comp_unit (cu, type_unit_die, language_minimal);
pst = create_partial_symtab (per_cu, ""); pst = create_partial_symtab (per_cu, "");
@ -8341,8 +8343,7 @@ build_type_psymtab_dependencies (void **slot, void *info)
struct type_unit_group *tu_group = (struct type_unit_group *) *slot; struct type_unit_group *tu_group = (struct type_unit_group *) *slot;
struct dwarf2_per_cu_data *per_cu = &tu_group->per_cu; struct dwarf2_per_cu_data *per_cu = &tu_group->per_cu;
struct partial_symtab *pst = per_cu->v.psymtab; struct partial_symtab *pst = per_cu->v.psymtab;
int len = VEC_length (sig_type_ptr, tu_group->tus); int len = (tu_group->tus == nullptr) ? 0 : tu_group->tus->size ();
struct signatured_type *iter;
int i; int i;
gdb_assert (len > 0); gdb_assert (len > 0);
@ -8350,16 +8351,16 @@ build_type_psymtab_dependencies (void **slot, void *info)
pst->number_of_dependencies = len; pst->number_of_dependencies = len;
pst->dependencies = objfile->partial_symtabs->allocate_dependencies (len); pst->dependencies = objfile->partial_symtabs->allocate_dependencies (len);
for (i = 0; for (i = 0; i < len; ++i)
VEC_iterate (sig_type_ptr, tu_group->tus, i, iter);
++i)
{ {
struct signatured_type *iter = tu_group->tus->at (i);
gdb_assert (iter->per_cu.is_debug_types); gdb_assert (iter->per_cu.is_debug_types);
pst->dependencies[i] = iter->per_cu.v.psymtab; pst->dependencies[i] = iter->per_cu.v.psymtab;
iter->type_unit_group = tu_group; iter->type_unit_group = tu_group;
} }
VEC_free (sig_type_ptr, tu_group->tus); delete tu_group->tus;
tu_group->tus = nullptr;
return 1; return 1;
} }

View File

@ -401,9 +401,6 @@ struct signatured_type
struct dwo_unit *dwo_unit; struct dwo_unit *dwo_unit;
}; };
typedef struct signatured_type *sig_type_ptr;
DEF_VEC_P (sig_type_ptr);
ULONGEST read_unsigned_leb128 (bfd *, const gdb_byte *, unsigned int *); ULONGEST read_unsigned_leb128 (bfd *, const gdb_byte *, unsigned int *);
/* This represents a '.dwz' file. */ /* This represents a '.dwz' file. */