diff options
author | Simon Marchi <simon.marchi@efficios.com> | 2020-05-07 11:17:33 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@efficios.com> | 2020-05-07 11:32:29 -0400 |
commit | 5c54719c22b14f526e72be39a793657ac73d36c5 (patch) | |
tree | 339567d0f226aa8d56b356d606dec359be1c86e6 | |
parent | 24e99c6c3c78e38a9919c9f8e8b831713f8303a3 (diff) | |
download | gdb-5c54719c22b14f526e72be39a793657ac73d36c5.zip gdb-5c54719c22b14f526e72be39a793657ac73d36c5.tar.gz gdb-5c54719c22b14f526e72be39a793657ac73d36c5.tar.bz2 |
gdb: make add_dyn_prop a method of struct type
Move add_dyn_prop, currently a free function, to be a method of struct
type.
gdb/ChangeLog:
* gdbtypes.h (struct type) <add_dyn_prop>: New method.
(add_dyn_prop): Remove. Update all users to use
type::add_dyn_prop.
* gdbtypes.c (add_dyn_prop): Rename to...
(type::add_dyn_prop): ... this.
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/dwarf2/read.c | 12 | ||||
-rw-r--r-- | gdb/gdbtypes.c | 13 | ||||
-rw-r--r-- | gdb/gdbtypes.h | 14 |
4 files changed, 26 insertions, 21 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e295fd1..857897f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2020-05-07 Simon Marchi via Gdb-patches <gdb-patches@sourceware.org> + + * gdbtypes.h (struct type) <add_dyn_prop>: New method. + (add_dyn_prop): Remove. Update all users to use + type::add_dyn_prop. + * gdbtypes.c (add_dyn_prop): Rename to... + (type::add_dyn_prop): ... this. + 2020-05-07 Simon Marchi <simon.marchi@efficios.com> * gdbtypes.h (struct type) <get_dyn_prop>: New method. diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 1813085..ac20899 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -9218,7 +9218,7 @@ alloc_rust_variant (struct obstack *obstack, struct type *type, prop.kind = PROP_VARIANT_PARTS; prop.data.variant_parts = prop_value; - add_dyn_prop (DYN_PROP_VARIANT_PARTS, prop, type); + type->add_dyn_prop (DYN_PROP_VARIANT_PARTS, prop); } /* Some versions of rustc emitted enums in an unusual way. @@ -14706,7 +14706,7 @@ add_variant_property (struct field_info *fip, struct type *type, = ((gdb::array_view<variant_part> *) obstack_copy (&objfile->objfile_obstack, &parts, sizeof (parts))); - add_dyn_prop (DYN_PROP_VARIANT_PARTS, prop, type); + type->add_dyn_prop (DYN_PROP_VARIANT_PARTS, prop); } /* Create the vector of fields, and attach it to the type. */ @@ -15355,7 +15355,7 @@ read_structure_type (struct die_info *die, struct dwarf2_cu *cu) struct dynamic_prop prop; if (attr_to_dynamic_prop (attr, die, cu, &prop, cu->per_cu->addr_type ())) - add_dyn_prop (DYN_PROP_BYTE_SIZE, prop, type); + type->add_dyn_prop (DYN_PROP_BYTE_SIZE, prop); TYPE_LENGTH (type) = 0; } } @@ -23605,7 +23605,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) { struct type *prop_type = cu->per_cu->addr_sized_int_type (false); if (attr_to_dynamic_prop (attr, die, cu, &prop, prop_type)) - add_dyn_prop (DYN_PROP_ALLOCATED, prop, type); + type->add_dyn_prop (DYN_PROP_ALLOCATED, prop); } else if (attr != NULL) { @@ -23620,7 +23620,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) { struct type *prop_type = cu->per_cu->addr_sized_int_type (false); if (attr_to_dynamic_prop (attr, die, cu, &prop, prop_type)) - add_dyn_prop (DYN_PROP_ASSOCIATED, prop, type); + type->add_dyn_prop (DYN_PROP_ASSOCIATED, prop); } else if (attr != NULL) { @@ -23633,7 +23633,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) attr = dwarf2_attr (die, DW_AT_data_location, cu); if (attr_to_dynamic_prop (attr, die, cu, &prop, cu->per_cu->addr_type ())) - add_dyn_prop (DYN_PROP_DATA_LOCATION, prop, type); + type->add_dyn_prop (DYN_PROP_DATA_LOCATION, prop); if (dwarf2_per_objfile->die_type_hash == NULL) dwarf2_per_objfile->die_type_hash diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c index 715db07..1444351 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -1286,7 +1286,7 @@ create_array_type_with_stride (struct type *result_type, (struct field *) TYPE_ZALLOC (result_type, sizeof (struct field)); TYPE_INDEX_TYPE (result_type) = range_type; if (byte_stride_prop != NULL) - add_dyn_prop (DYN_PROP_BYTE_STRIDE, *byte_stride_prop, result_type); + result_type->add_dyn_prop (DYN_PROP_BYTE_STRIDE, *byte_stride_prop); else if (bit_stride > 0) TYPE_FIELD_BITSIZE (result_type, 0) = bit_stride; @@ -2668,20 +2668,19 @@ type::dyn_prop (dynamic_prop_node_kind prop_kind) const /* See gdbtypes.h */ void -add_dyn_prop (enum dynamic_prop_node_kind prop_kind, struct dynamic_prop prop, - struct type *type) +type::add_dyn_prop (dynamic_prop_node_kind prop_kind, dynamic_prop prop) { struct dynamic_prop_list *temp; - gdb_assert (TYPE_OBJFILE_OWNED (type)); + gdb_assert (TYPE_OBJFILE_OWNED (this)); - temp = XOBNEW (&TYPE_OBJFILE (type)->objfile_obstack, + temp = XOBNEW (&TYPE_OBJFILE (this)->objfile_obstack, struct dynamic_prop_list); temp->prop_kind = prop_kind; temp->prop = prop; - temp->next = TYPE_DYN_PROP_LIST (type); + temp->next = TYPE_DYN_PROP_LIST (this); - TYPE_DYN_PROP_LIST (type) = temp; + TYPE_DYN_PROP_LIST (this) = temp; } /* Remove dynamic property from TYPE in case it exists. */ diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h index 2845b71..ef991f3 100644 --- a/gdb/gdbtypes.h +++ b/gdb/gdbtypes.h @@ -878,6 +878,12 @@ struct type list of dynamic properties. */ dynamic_prop *dyn_prop (dynamic_prop_node_kind kind) const; + /* * Given a dynamic property PROP of a given KIND, add this dynamic + property to this type. + + This function assumes that this type is objfile-owned. */ + void add_dyn_prop (dynamic_prop_node_kind kind, dynamic_prop prop); + /* * Type that is a pointer to this type. NULL if no such pointer-to type is known yet. The debugger may add the address of such a type @@ -2097,14 +2103,6 @@ extern struct type *resolve_dynamic_type /* * Predicate if the type has dynamic values, which are not resolved yet. */ extern int is_dynamic_type (struct type *type); -/* * Given a dynamic property PROP of a given KIND, add this dynamic - property to the given TYPE. - - This function assumes that TYPE is objfile-owned. */ -extern void add_dyn_prop - (enum dynamic_prop_node_kind kind, struct dynamic_prop prop, - struct type *type); - extern void remove_dyn_prop (enum dynamic_prop_node_kind prop_kind, struct type *type); |