[PATCH 5/8] pack partial_symtab for space

Tom Tromey
2013-11-26T22:27:00Z

This improves the packing of struct partial_symtab. I noticed with
pahole that were were a couple of holes. This consolidates the holes
without, I think, affecting readability -- it just moves the "user"
field a bit earlier in the struct. This change saves a small amount
of memory.

2013-11-26 Tom Tromey <tromey@redhat.com>

* psympriv.h (struct partial_symtab) <user>: Move earlier.
---
gdb/ChangeLog | 4 ++++
gdb/psympriv.h | 26 +++++++++++++-------------
2 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/gdb/psympriv.h b/gdb/psympriv.h
index 7a62bcc..9df687d 100644
--- a/gdb/psympriv.h
+++ b/gdb/psympriv.h
@@ -111,19 +111,6 @@ struct partial_symtab
CORE_ADDR textlow;
CORE_ADDR texthigh;

- /* Array of pointers to all of the partial_symtab's which this one
- depends on. Since this array can only be set to previous or
- the current (?) psymtab, this dependency tree is guaranteed not
- to have any loops. "depends on" means that symbols must be read
- for the dependencies before being read for this psymtab; this is
- for type references in stabs, where if foo.c includes foo.h, declarations
- in foo.h may use type numbers defined in foo.c. For other debugging
- formats there may be no need to use dependencies. */
-
- struct partial_symtab **dependencies;
-
- int number_of_dependencies;
-
/* If NULL, this is an ordinary partial symbol table.

If non-NULL, this holds a single includer of this partial symbol
@@ -153,6 +140,19 @@ struct partial_symtab

struct partial_symtab *user;

+ /* Array of pointers to all of the partial_symtab's which this one
+ depends on. Since this array can only be set to previous or
+ the current (?) psymtab, this dependency tree is guaranteed not
+ to have any loops. "depends on" means that symbols must be read
+ for the dependencies before being read for this psymtab; this is
+ for type references in stabs, where if foo.c includes foo.h, declarations
+ in foo.h may use type numbers defined in foo.c. For other debugging
+ formats there may be no need to use dependencies. */
+
+ struct partial_symtab **dependencies;
+
+ int number_of_dependencies;
+
/* Global symbol list. This list will be sorted after readin to
improve access. Binary search will be the usual method of
finding a symbol within it. globals_offset is an integer offset
--
1.8.1.4