aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2009-07-14 14:55:06 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2009-07-14 14:55:06 +0000
commitb101f7a1257f10f7e9d596bef5c59b4ae082f4ab (patch)
tree1582ba2b8e4607b8e79239dc6d537164b8d70c7e
parent217f1f79547fc2edab20e6fd0f30814c758d86d9 (diff)
downloadgdb-b101f7a1257f10f7e9d596bef5c59b4ae082f4ab.zip
gdb-b101f7a1257f10f7e9d596bef5c59b4ae082f4ab.tar.gz
gdb-b101f7a1257f10f7e9d596bef5c59b4ae082f4ab.tar.bz2
* objfiles.c (objfile_relocate): Do not relocate the same
BLOCKVECTOR_MAP address map multiple times.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/objfiles.c7
2 files changed, 9 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2056b31..690f76a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2009-07-14 Ulrich Weigand <uweigand@de.ibm.com>
+ * objfiles.c (objfile_relocate): Do not relocate the same
+ BLOCKVECTOR_MAP address map multiple times.
+
+2009-07-14 Ulrich Weigand <uweigand@de.ibm.com>
+
* remote.c (process_stop_reply): Access expedited target registers
in target_gdbarch.
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index 795d53b..69b366f 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -570,6 +570,10 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
continue;
bv = BLOCKVECTOR (s);
+ if (BLOCKVECTOR_MAP (bv))
+ addrmap_relocate (BLOCKVECTOR_MAP (bv),
+ ANOFFSET (delta, s->block_line_section));
+
for (i = 0; i < BLOCKVECTOR_NBLOCKS (bv); ++i)
{
struct block *b;
@@ -579,9 +583,6 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
b = BLOCKVECTOR_BLOCK (bv, i);
BLOCK_START (b) += ANOFFSET (delta, s->block_line_section);
BLOCK_END (b) += ANOFFSET (delta, s->block_line_section);
- if (BLOCKVECTOR_MAP (bv))
- addrmap_relocate (BLOCKVECTOR_MAP (bv),
- ANOFFSET (delta, s->block_line_section));
ALL_BLOCK_SYMBOLS (b, iter, sym)
{