projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move free_all_objfiles to program_space
[deliverable/binutils-gdb.git]
/
gdb
/
objfiles.h
diff --git
a/gdb/objfiles.h
b/gdb/objfiles.h
index 0c044582e437f4e1b3ff89d05598c07b44719e2c..34240558da3d8823fd6206c356f0b8652a2b0cc3 100644
(file)
--- a/
gdb/objfiles.h
+++ b/
gdb/objfiles.h
@@
-244,11
+244,11
@@
struct objfile_per_bfd_storage
/* Byte cache for file names. */
/* Byte cache for file names. */
-
struct
bcache filename_cache;
+
gdb::
bcache filename_cache;
/* Byte cache for macros. */
/* Byte cache for macros. */
-
struct
bcache macro_cache;
+
gdb::
bcache macro_cache;
/* The gdbarch associated with the BFD. Note that this gdbarch is
determined solely from BFD information, without looking at target
/* The gdbarch associated with the BFD. Note that this gdbarch is
determined solely from BFD information, without looking at target
@@
-394,9
+394,24
@@
private:
struct objfile
{
struct objfile
{
+private:
+
+ /* The only way to create an objfile is to call objfile::make. */
objfile (bfd *, const char *, objfile_flags);
objfile (bfd *, const char *, objfile_flags);
+
+ /* The only way to free an objfile is via 'unlink'. */
~objfile ();
~objfile ();
+public:
+
+ /* Create an objfile. */
+ static objfile *make (bfd *bfd_, const char *name_, objfile_flags flags_,
+ objfile *parent = nullptr);
+
+ /* Remove an objfile from the current program space, and free
+ it. */
+ void unlink ();
+
DISABLE_COPY_AND_ASSIGN (objfile);
/* A range adapter that makes it possible to iterate over all
DISABLE_COPY_AND_ASSIGN (objfile);
/* A range adapter that makes it possible to iterate over all
@@
-471,12
+486,6
@@
struct objfile
}
}
- /* All struct objfile's are chained together by their next pointers.
- The program space field "objfiles" (frequently referenced via
- the macro "object_files") points to the first link in this chain. */
-
- struct objfile *next = nullptr;
-
/* The object file's original name as specified by the user,
made absolute, and tilde-expanded. However, it is not canonicalized
(i.e., it has not been passed through gdb_realpath).
/* The object file's original name as specified by the user,
made absolute, and tilde-expanded. However, it is not canonicalized
(i.e., it has not been passed through gdb_realpath).
@@
-627,6
+636,20
@@
struct objfile
htab_up static_links;
};
htab_up static_links;
};
+/* A deleter for objfile. */
+
+struct objfile_deleter
+{
+ void operator() (objfile *ptr) const
+ {
+ ptr->unlink ();
+ }
+};
+
+/* A unique pointer that holds an objfile. */
+
+typedef std::unique_ptr<objfile, objfile_deleter> objfile_up;
+
/* Declarations for functions defined in objfiles.c */
extern struct gdbarch *get_objfile_arch (const struct objfile *);
/* Declarations for functions defined in objfiles.c */
extern struct gdbarch *get_objfile_arch (const struct objfile *);
@@
-637,12
+660,8
@@
extern CORE_ADDR entry_point_address (void);
extern void build_objfile_section_table (struct objfile *);
extern void build_objfile_section_table (struct objfile *);
-extern void add_separate_debug_objfile (struct objfile *, struct objfile *);
-
extern void free_objfile_separate_debug (struct objfile *);
extern void free_objfile_separate_debug (struct objfile *);
-extern void free_all_objfiles (void);
-
extern void objfile_relocate (struct objfile *, const struct section_offsets *);
extern void objfile_rebase (struct objfile *, CORE_ADDR);
extern void objfile_relocate (struct objfile *, const struct section_offsets *);
extern void objfile_rebase (struct objfile *, CORE_ADDR);
@@
-746,10
+765,6
@@
extern void default_iterate_over_objfiles_in_search_order
uninitialized section index. */
#define SECT_OFF_BSS(objfile) (objfile)->sect_index_bss
uninitialized section index. */
#define SECT_OFF_BSS(objfile) (objfile)->sect_index_bss
-/* Answer whether there is more than one object file loaded. */
-
-#define MULTI_OBJFILE_P() (object_files && object_files->next)
-
/* Reset the per-BFD storage area on OBJ. */
void set_objfile_per_bfd (struct objfile *obj);
/* Reset the per-BFD storage area on OBJ. */
void set_objfile_per_bfd (struct objfile *obj);
This page took
0.027249 seconds
and
4
git commands to generate.