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"));
+
+}
+
+/* See progspace.h. */
+
+void
+program_space::remove_objfile (struct objfile *objfile)
+{
+ struct objfile **objpp;
+
+ for (objpp = &object_files; *objpp != NULL; objpp = &((*objpp)->next))
+ {
+ if (*objpp == objfile)
+ {
+ *objpp = (*objpp)->next;
+ objfile->next = NULL;
+
+ if (objfile == symfile_object_file)
+ symfile_object_file = NULL;
+
+ return;
+ }
+ }
+
+ internal_error (__FILE__, __LINE__,
+ _("remove_objfile: objfile already unlinked"));
+}
+
+/* See progspace.h. */
+
+bool
+program_space::multi_objfile_p () const
+{
+ return objfiles_head != nullptr && objfiles_head->next != nullptr;
+}
+
/* Copies program space SRC to DEST. Copies the main executable file,
and the main symbol file. Returns DEST. */