aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbtypes.c
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@adacore.com>2015-03-24 11:14:13 -0700
committerJoel Brobecker <brobecker@adacore.com>2015-03-24 11:25:46 -0700
commit283a99589a0780a3b1fc011885b630bd9223ebba (patch)
tree6416ff1ce3ab2294060896c9232e51c7001ff761 /gdb/gdbtypes.c
parent93a8e2276fadd7dbb323d7cf4b082c33b32073d5 (diff)
downloadfsf-binutils-gdb-283a99589a0780a3b1fc011885b630bd9223ebba.zip
fsf-binutils-gdb-283a99589a0780a3b1fc011885b630bd9223ebba.tar.gz
fsf-binutils-gdb-283a99589a0780a3b1fc011885b630bd9223ebba.tar.bz2
Do not make "prop" field of struct dynamic_prop_list a pointer.
struct dynamic_prop_list is declared as follow: struct dynamic_prop_list { [...] /* The dynamic property itself. */ struct dynamic_prop *prop; [...] }; In this case, the pointer indirection is unnecessary and costing us, for each dynamic property, the memory needed to store one pointer. This patch removes this pointer indirection, savin us a tiny bit of memory, as well as reduces a bit the complexity by removing the need to allocate memory for the property, as the allocation is now part of the struct itself. gdb/ChangeLog: * gdbtypes.h (struct dynamic_prop_list) <prop>: Remove pointer indirection. * gdbtypes.c (get_dyn_prop): Adjust, following change above. (add_dyn_prop, copy_dynamic_prop_list): Likewise. Tested on x86_64-linux.
Diffstat (limited to 'gdb/gdbtypes.c')
-rw-r--r--gdb/gdbtypes.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index 19579af..217ec70 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -2109,7 +2109,7 @@ get_dyn_prop (enum dynamic_prop_node_kind prop_kind, const struct type *type)
while (node != NULL)
{
if (node->prop_kind == prop_kind)
- return node->prop;
+ return &node->prop;
node = node->next;
}
return NULL;
@@ -2128,7 +2128,7 @@ add_dyn_prop (enum dynamic_prop_node_kind prop_kind, struct dynamic_prop prop,
temp = obstack_alloc (&objfile->objfile_obstack,
sizeof (struct dynamic_prop_list));
temp->prop_kind = prop_kind;
- temp->prop = obstack_copy (&objfile->objfile_obstack, &prop, sizeof (prop));
+ temp->prop = prop;
temp->next = TYPE_DYN_PROP_LIST (type);
TYPE_DYN_PROP_LIST (type) = temp;
@@ -4279,8 +4279,7 @@ copy_dynamic_prop_list (struct obstack *objfile_obstack,
node_copy = obstack_copy (objfile_obstack, *node_ptr,
sizeof (struct dynamic_prop_list));
- node_copy->prop = obstack_copy (objfile_obstack, (*node_ptr)->prop,
- sizeof (struct dynamic_prop));
+ node_copy->prop = (*node_ptr)->prop;
*node_ptr = node_copy;
node_ptr = &node_copy->next;