* objfiles.c (objfile_relocate1): Change the return type to int.
	Describe the new return value.  Return non-zero if data changed.
	(objfile_relocate): New variable changed.  Set it.  Call
	breakpoint_re_set depending on CHANGED.
This commit is contained in:
Jan Kratochvil 2010-01-11 18:15:05 +00:00
parent b5cfddf53b
commit b260e10983
2 changed files with 19 additions and 6 deletions

View File

@ -1,3 +1,10 @@
2010-01-11 Jan Kratochvil <jan.kratochvil@redhat.com>
* objfiles.c (objfile_relocate1): Change the return type to int.
Describe the new return value. Return non-zero if data changed.
(objfile_relocate): New variable changed. Set it. Call
breakpoint_re_set depending on CHANGED.
2010-01-11 Jan Kratochvil <jan.kratochvil@redhat.com> 2010-01-11 Jan Kratochvil <jan.kratochvil@redhat.com>
Implement binary numbers parsing. Implement binary numbers parsing.

View File

@ -693,9 +693,10 @@ free_all_objfiles (void)
} }
/* Relocate OBJFILE to NEW_OFFSETS. There should be OBJFILE->NUM_SECTIONS /* Relocate OBJFILE to NEW_OFFSETS. There should be OBJFILE->NUM_SECTIONS
entries in new_offsets. SEPARATE_DEBUG_OBJFILE is not touched here. */ entries in new_offsets. SEPARATE_DEBUG_OBJFILE is not touched here.
Return non-zero iff any change happened. */
static void static int
objfile_relocate1 (struct objfile *objfile, struct section_offsets *new_offsets) objfile_relocate1 (struct objfile *objfile, struct section_offsets *new_offsets)
{ {
struct obj_section *s; struct obj_section *s;
@ -714,7 +715,7 @@ objfile_relocate1 (struct objfile *objfile, struct section_offsets *new_offsets)
something_changed = 1; something_changed = 1;
} }
if (!something_changed) if (!something_changed)
return; return 0;
} }
/* OK, get all the symtabs. */ /* OK, get all the symtabs. */
@ -850,6 +851,9 @@ objfile_relocate1 (struct objfile *objfile, struct section_offsets *new_offsets)
exec_set_section_address (bfd_get_filename (objfile->obfd), idx, exec_set_section_address (bfd_get_filename (objfile->obfd), idx,
obj_section_addr (s)); obj_section_addr (s));
} }
/* Data changed. */
return 1;
} }
/* Relocate OBJFILE to NEW_OFFSETS. There should be OBJFILE->NUM_SECTIONS /* Relocate OBJFILE to NEW_OFFSETS. There should be OBJFILE->NUM_SECTIONS
@ -865,8 +869,9 @@ void
objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets) objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
{ {
struct objfile *debug_objfile; struct objfile *debug_objfile;
int changed = 0;
objfile_relocate1 (objfile, new_offsets); changed |= objfile_relocate1 (objfile, new_offsets);
for (debug_objfile = objfile->separate_debug_objfile; for (debug_objfile = objfile->separate_debug_objfile;
debug_objfile; debug_objfile;
@ -894,13 +899,14 @@ objfile_relocate (struct objfile *objfile, struct section_offsets *new_offsets)
debug_objfile->num_sections, debug_objfile->num_sections,
objfile_addrs); objfile_addrs);
objfile_relocate1 (debug_objfile, new_debug_offsets); changed |= objfile_relocate1 (debug_objfile, new_debug_offsets);
do_cleanups (my_cleanups); do_cleanups (my_cleanups);
} }
/* Relocate breakpoints as necessary, after things are relocated. */ /* Relocate breakpoints as necessary, after things are relocated. */
breakpoint_re_set (); if (changed)
breakpoint_re_set ();
} }
/* Return non-zero if OBJFILE has partial symbols. */ /* Return non-zero if OBJFILE has partial symbols. */