Change add_target_sections_of_objfile to method on program_space

This changes add_target_sections_of_objfile to be a method on
program_space.  It is renamed to be another overload of
add_target_sections, because they are semantically equivalent in a
sense.

gdb/ChangeLog
2020-10-29  Tom Tromey  <tom@tromey.com>

	* symfile.c (add_symbol_file_command): Update.
	* exec.c (program_space::add_target_sections): Rename.
	* symfile-mem.c (symbol_file_add_from_memory): Update.
	* progspace.h (struct program_space) <add_target_sections>:
	Declare new overload.
	* exec.h (add_target_sections_of_objfile): Don't declare.
This commit is contained in:
Tom Tromey
2020-10-29 15:04:33 -06:00
parent 3769e2277d
commit d9eebde018
6 changed files with 19 additions and 12 deletions

View File

@ -1,3 +1,12 @@
2020-10-29 Tom Tromey <tom@tromey.com>
* symfile.c (add_symbol_file_command): Update.
* exec.c (program_space::add_target_sections): Rename.
* symfile-mem.c (symbol_file_add_from_memory): Update.
* progspace.h (struct program_space) <add_target_sections>:
Declare new overload.
* exec.h (add_target_sections_of_objfile): Don't declare.
2020-10-29 Tom Tromey <tom@tromey.com>
* solib.c (solib_map_sections): Update.

View File

@ -628,9 +628,8 @@ program_space::add_target_sections (void *owner,
/* Add the sections of OBJFILE to the current set of target sections. */
void
add_target_sections_of_objfile (struct objfile *objfile)
program_space::add_target_sections (struct objfile *objfile)
{
target_section_table *table = &current_program_space->target_sections;
struct obj_section *osect;
gdb_assert (objfile != nullptr);
@ -641,9 +640,9 @@ add_target_sections_of_objfile (struct objfile *objfile)
if (bfd_section_size (osect->the_bfd_section) == 0)
continue;
table->emplace_back (obj_section_addr (osect),
obj_section_endaddr (osect),
osect->the_bfd_section, (void *) objfile);
target_sections.emplace_back (obj_section_addr (osect),
obj_section_endaddr (osect),
osect->the_bfd_section, (void *) objfile);
}
}

View File

@ -92,11 +92,6 @@ extern enum target_xfer_status
/* Set the loaded address of a section. */
extern void exec_set_section_address (const char *, int, CORE_ADDR);
/* Add the sections of OBJFILE to the current set of target sections.
* OBJFILE owns the new target sections. */
extern void add_target_sections_of_objfile (struct objfile *objfile);
/* Prints info about all sections defined in the TABLE. ABFD is
special cased --- it's filename is omitted; if it is the executable
file, its entry point is printed. */

View File

@ -305,6 +305,10 @@ struct program_space
void add_target_sections (void *owner,
const target_section_table &sections);
/* Add the sections of OBJFILE to the current set of target
sections. They are given OBJFILE as the "owner". */
void add_target_sections (struct objfile *objfile);
/* Unique ID number. */
int num = 0;

View File

@ -122,7 +122,7 @@ symbol_file_add_from_memory (struct bfd *templ, CORE_ADDR addr,
objf = symbol_file_add_from_bfd (nbfd, bfd_get_filename (nbfd),
add_flags, &sai, OBJF_SHARED, NULL);
add_target_sections_of_objfile (objf);
current_program_space->add_target_sections (objf);
/* This might change our ideas about frames already looked at. */
reinit_frame_cache ();

View File

@ -2323,7 +2323,7 @@ add_symbol_file_command (const char *args, int from_tty)
if (seen_offset)
set_objfile_default_section_offset (objf, section_addrs, offset);
add_target_sections_of_objfile (objf);
current_program_space->add_target_sections (objf);
/* Getting new symbols may change our opinion about what is
frameless. */