storage
= ((struct objfile_per_bfd_storage *)
bfd_alloc (abfd, sizeof (struct objfile_per_bfd_storage)));
+ /* objfile_per_bfd_storage is not trivially constructible, must
+ call the ctor manually. */
+ storage = new (storage) objfile_per_bfd_storage ();
set_bfd_data (abfd, objfiles_bfd_data, storage);
}
else
- {
- storage = (objfile_per_bfd_storage *)
- obstack_alloc (&objfile->objfile_obstack,
- sizeof (objfile_per_bfd_storage));
- }
-
- /* objfile_per_bfd_storage is not trivially constructible, must
- call the ctor manually. */
- storage = new (storage) objfile_per_bfd_storage ();
+ storage
+ = obstack_new<objfile_per_bfd_storage> (&objfile->objfile_obstack);
/* Look up the gdbarch associated with the BFD. */
if (abfd != NULL)
slot = htab_find_slot (objfile->static_links, &lookup_entry, INSERT);
gdb_assert (*slot == NULL);
- entry = (struct static_link_htab_entry *) obstack_alloc
- (&objfile->objfile_obstack, sizeof (*entry));
+ entry = XOBNEW (&objfile->objfile_obstack, static_link_htab_entry);
entry->block = block;
entry->static_link = static_link;
*slot = (void *) entry;
struct gdbarch *const gdbarch = get_objfile_arch (objf1);
- complaint (&symfile_complaints,
- _("unexpected overlap between:\n"
+ complaint (_("unexpected overlap between:\n"
" (A) section `%s' from `%s' [%s, %s)\n"
" (B) section `%s' from `%s' [%s, %s).\n"
"Will ignore section B"),
/* See comments in objfiles.h. */
-void
+scoped_restore_tmpl<int>
inhibit_section_map_updates (struct program_space *pspace)
{
- get_objfile_pspace_data (pspace)->inhibit_updates = 1;
-}
-
-/* See comments in objfiles.h. */
-
-void
-resume_section_map_updates (struct program_space *pspace)
-{
- get_objfile_pspace_data (pspace)->inhibit_updates = 0;
-}
-
-/* See comments in objfiles.h. */
-
-void
-resume_section_map_updates_cleanup (void *arg)
-{
- resume_section_map_updates ((struct program_space *) arg);
+ return scoped_restore_tmpl<int>
+ (&get_objfile_pspace_data (pspace)->inhibit_updates, 1);
}
/* Return 1 if ADDR maps into one of the sections of OBJFILE and 0