From b101f7a1257f10f7e9d596bef5c59b4ae082f4ab Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Tue, 14 Jul 2009 14:55:06 +0000 Subject: [PATCH] * objfiles.c (objfile_relocate): Do not relocate the same BLOCKVECTOR_MAP address map multiple times. --- gdb/ChangeLog | 5 +++++ gdb/objfiles.c | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2056b31d98a..690f76a0461 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2009-07-14 Ulrich Weigand + + * objfiles.c (objfile_relocate): Do not relocate the same + BLOCKVECTOR_MAP address map multiple times. + 2009-07-14 Ulrich Weigand * remote.c (process_stop_reply): Access expedited target registers diff --git a/gdb/objfiles.c b/gdb/objfiles.c index 795d53b3f54..69b366f0e60 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) { -- 2.30.2