Eliminate target_has_exited
[deliverable/binutils-gdb.git] / gdb / jit.c
index 62d66345418f1e509876d1788147479436cd12f6..2f23c058a034f96ea1970fd69b687ddad62f5f72 100644 (file)
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -30,7 +30,7 @@
 #include "gdbcmd.h"
 #include "gdbcore.h"
 #include "inferior.h"
-#include "observer.h"
+#include "observable.h"
 #include "objfiles.h"
 #include "regcache.h"
 #include "symfile.h"
@@ -888,11 +888,8 @@ jit_bfd_try_read_symtab (struct jit_code_entry *code_entry,
                          CORE_ADDR entry_addr,
                          struct gdbarch *gdbarch)
 {
-  struct section_addr_info *sai;
   struct bfd_section *sec;
   struct objfile *objfile;
-  struct cleanup *old_cleanups;
-  int i;
   const struct bfd_arch_info *b;
 
   if (jit_debug)
@@ -931,27 +928,23 @@ JITed symbol file is not an object file, ignoring it.\n"));
   /* Read the section address information out of the symbol file.  Since the
      file is generated by the JIT at runtime, it should all of the absolute
      addresses that we care about.  */
-  sai = alloc_section_addr_info (bfd_count_sections (nbfd.get ()));
-  old_cleanups = make_cleanup_free_section_addr_info (sai);
-  i = 0;
+  section_addr_info sai;
   for (sec = nbfd->sections; sec != NULL; sec = sec->next)
     if ((bfd_get_section_flags (nbfd.get (), sec) & (SEC_ALLOC|SEC_LOAD)) != 0)
       {
         /* We assume that these virtual addresses are absolute, and do not
            treat them as offsets.  */
-        sai->other[i].addr = bfd_get_section_vma (nbfd.get (), sec);
-        sai->other[i].name = xstrdup (bfd_get_section_name (nbfd.get (), sec));
-        sai->other[i].sectindex = sec->index;
-        ++i;
+       sai.emplace_back (bfd_get_section_vma (nbfd.get (), sec),
+                         bfd_get_section_name (nbfd.get (), sec),
+                         sec->index);
       }
-  sai->num_sections = i;
 
   /* This call does not take ownership of SAI.  */
   objfile = symbol_file_add_from_bfd (nbfd.get (),
-                                     bfd_get_filename (nbfd.get ()), 0, sai,
+                                     bfd_get_filename (nbfd.get ()), 0,
+                                     &sai,
                                      OBJF_SHARED | OBJF_NOT_FILENAME, NULL);
 
-  do_cleanups (old_cleanups);
   add_objfile_entry (objfile, entry_addr);
 }
 
@@ -1506,9 +1499,9 @@ _initialize_jit (void)
                             show_jit_debug,
                             &setdebuglist, &showdebuglist);
 
-  observer_attach_inferior_created (jit_inferior_created);
-  observer_attach_inferior_exit (jit_inferior_exit_hook);
-  observer_attach_breakpoint_deleted (jit_breakpoint_deleted);
+  gdb::observers::inferior_created.attach (jit_inferior_created);
+  gdb::observers::inferior_exit.attach (jit_inferior_exit_hook);
+  gdb::observers::breakpoint_deleted.attach (jit_breakpoint_deleted);
 
   jit_objfile_data =
     register_objfile_data_with_cleanup (NULL, free_objfile_data);
This page took 0.025332 seconds and 4 git commands to generate.