Introduce program_space::add_objfile
[deliverable/binutils-gdb.git] / gdb / progspace.c
index ba400d47aa5c4b0ab3f99d363122373a1240137e..5aa7a3d177e488a24c218e8ba617dbf78b84df62 100644 (file)
@@ -1,6 +1,6 @@
 /* Program and address space management, for GDB, the GNU debugger.
 
-   Copyright (C) 2009-2018 Free Software Foundation, Inc.
+   Copyright (C) 2009-2019 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -24,6 +24,7 @@
 #include "gdbcore.h"
 #include "solib.h"
 #include "gdbthread.h"
+#include "inferior.h"
 
 /* The last program space number assigned.  */
 int last_program_space_num = 0;
@@ -152,6 +153,28 @@ program_space::~program_space ()
   program_space_free_data (this);
 }
 
+/* See progspace.h.  */
+
+void
+program_space::add_objfile (struct objfile *objfile, struct objfile *before)
+{
+  for (struct objfile **objp = &objfiles_head;
+       *objp != NULL;
+       objp = &((*objp)->next))
+    {
+      if (*objp == before)
+       {
+         objfile->next = *objp;
+         *objp = objfile;
+         return;
+       }
+    }
+
+  internal_error (__FILE__, __LINE__,
+                 _("put_objfile_before: before objfile not in list"));
+
+}
+
 /* Copies program space SRC to DEST.  Copies the main executable file,
    and the main symbol file.  Returns DEST.  */
 
@@ -271,7 +294,7 @@ print_program_space (struct ui_out *uiout, int requested)
       else
        uiout->field_skip ("current");
 
-      uiout->field_int ("id", pspace->num);
+      uiout->field_signed ("id", pspace->num);
 
       if (pspace->pspace_exec_filename)
        uiout->field_string ("exec", pspace->pspace_exec_filename);
@@ -292,12 +315,12 @@ print_program_space (struct ui_out *uiout, int requested)
                printed_header = 1;
                printf_filtered ("\n\tBound inferiors: ID %d (%s)",
                                 inf->num,
-                                target_pid_to_str (pid_to_ptid (inf->pid)));
+                                target_pid_to_str (ptid_t (inf->pid)).c_str ());
              }
            else
              printf_filtered (", ID %d (%s)",
                               inf->num,
-                              target_pid_to_str (pid_to_ptid (inf->pid)));
+                              target_pid_to_str (ptid_t (inf->pid)).c_str ());
          }
 
       uiout->text ("\n");
@@ -400,8 +423,7 @@ update_address_spaces (void)
 void
 clear_program_space_solib_cache (struct program_space *pspace)
 {
-  VEC_free (so_list_ptr, pspace->added_solibs);
-
+  pspace->added_solibs.clear ();
   pspace->deleted_solibs.clear ();
 }
 
This page took 0.025774 seconds and 4 git commands to generate.