Use std::vector on tdesc->reg_defs (gdbserver/tdesc.h)

This is a followup patch to the build breakage fix on AArch64.  While
doing the fix, I found it better to convert tdesc->reg_defs (on
gdbserver/tdesc.h) from using VEC to using std::vector.  This makes
the code easier to read and maintain, and also is one more step
towards the C++fication.

Regtested on BuildBot.

2017-09-16  Sergio Durigan Junior  <sergiodj@redhat.com>

	* regcache.c (get_thread_regcache): Update code to use "std::vector"
	instead of "VEC" for "target_desc.reg_defs".
	(regcache_cpy): Likewise.
	(registers_to_string): Likewise.
	(registers_from_string): Likewise.
	(find_regno): Likewise.
	(supply_regblock): Likewise.
	(regcache_raw_read_unsigned): Likewise.
	* tdesc.c (init_target_desc): Likewise.
	(tdesc_create_reg): Likewise.
	* tdesc.h: Remove declaration of "tdesc_reg_p".  Include <vector>.
	(struct target_desc) <reg_defs>: Convert to "std::vector".
	(target_desc): Do not initialize "reg_defs".
	(~target_desc): Update code to use "std::vector" instead of "VEC"
	for "target_desc.reg_defs".
	(operator==): Likewise.
This commit is contained in:
Sergio Durigan Junior 2017-09-10 12:17:18 -04:00
parent ebee3285b3
commit c4dfafabc5
4 changed files with 52 additions and 45 deletions

View file

@ -22,11 +22,9 @@
void
init_target_desc (struct target_desc *tdesc)
{
int offset, i;
struct reg *reg;
int offset = 0;
offset = 0;
for (i = 0; VEC_iterate (tdesc_reg_p, tdesc->reg_defs, i, reg); i++)
for (reg *reg : tdesc->reg_defs)
{
reg->offset = offset;
offset += reg->size;
@ -193,23 +191,23 @@ tdesc_create_reg (struct tdesc_feature *feature, const char *name,
{
struct target_desc *tdesc = (struct target_desc *) feature;
while (VEC_length (tdesc_reg_p, tdesc->reg_defs) < regnum)
while (tdesc->reg_defs.size () < regnum)
{
struct reg *reg = XCNEW (struct reg);
reg->name = "";
reg->size = 0;
VEC_safe_push (tdesc_reg_p, tdesc->reg_defs, reg);
tdesc->reg_defs.push_back (reg);
}
gdb_assert (regnum == 0
|| regnum == VEC_length (tdesc_reg_p, tdesc->reg_defs));
|| regnum == tdesc->reg_defs.size ());
struct reg *reg = XCNEW (struct reg);
reg->name = name;
reg->size = bitsize;
VEC_safe_push (tdesc_reg_p, tdesc->reg_defs, reg);
tdesc->reg_defs.push_back (reg);
}
/* See arch/tdesc.h. */