Remove field_info::nfields member
I noticed that there's no real reason to have field_info::nfields in the DWARF reader. It simply mirrors information that is already available. This patch removes it, in favor of a convenience method. gdb/ChangeLog 2020-02-27 Tom Tromey <tromey@adacore.com> * dwarf2/read.c (struct field_info) <nfields>: Now a method, not a member. (dwarf2_add_field): Don't update nfields. (dwarf2_attach_fields_to_type, process_structure_scope): Update.
This commit is contained in:
parent
5f60280291
commit
317f712722
@ -1,3 +1,10 @@
|
||||
2020-02-27 Tom Tromey <tromey@adacore.com>
|
||||
|
||||
* dwarf2/read.c (struct field_info) <nfields>: Now a method, not a
|
||||
member.
|
||||
(dwarf2_add_field): Don't update nfields.
|
||||
(dwarf2_attach_fields_to_type, process_structure_scope): Update.
|
||||
|
||||
2020-02-27 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||
|
||||
* gdbtypes.c (create_array_type_with_stride): Use std::abs not
|
||||
|
@ -1129,9 +1129,6 @@ struct field_info
|
||||
std::vector<struct nextfield> fields;
|
||||
std::vector<struct nextfield> baseclasses;
|
||||
|
||||
/* Number of fields (including baseclasses). */
|
||||
int nfields = 0;
|
||||
|
||||
/* Set if the accessibility of one of the fields is not public. */
|
||||
int non_public_fields = 0;
|
||||
|
||||
@ -1147,6 +1144,12 @@ struct field_info
|
||||
/* Nested types defined by this class and the number of elements in this
|
||||
list. */
|
||||
std::vector<struct decl_field> nested_types_list;
|
||||
|
||||
/* Return the total number of fields (including baseclasses). */
|
||||
int nfields () const
|
||||
{
|
||||
return fields.size () + baseclasses.size ();
|
||||
}
|
||||
};
|
||||
|
||||
/* Loaded secondary compilation units are kept in memory until they
|
||||
@ -14207,8 +14210,6 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die,
|
||||
new_field = &fip->fields.back ();
|
||||
}
|
||||
|
||||
fip->nfields++;
|
||||
|
||||
attr = dwarf2_attr (die, DW_AT_accessibility, cu);
|
||||
if (attr != nullptr)
|
||||
new_field->accessibility = DW_UNSND (attr);
|
||||
@ -14468,7 +14469,7 @@ static void
|
||||
dwarf2_attach_fields_to_type (struct field_info *fip, struct type *type,
|
||||
struct dwarf2_cu *cu)
|
||||
{
|
||||
int nfields = fip->nfields;
|
||||
int nfields = fip->nfields ();
|
||||
|
||||
/* Record the field count, allocate space for the array of fields,
|
||||
and create blank accessibility bitfields if necessary. */
|
||||
@ -15336,7 +15337,7 @@ process_structure_scope (struct die_info *die, struct dwarf2_cu *cu)
|
||||
}
|
||||
|
||||
/* Attach fields and member functions to the type. */
|
||||
if (fi.nfields)
|
||||
if (fi.nfields () > 0)
|
||||
dwarf2_attach_fields_to_type (&fi, type, cu);
|
||||
if (!fi.fnfieldlists.empty ())
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user