diff options
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/jit.c | 4 | ||||
-rw-r--r-- | gdb/objfiles.h | 12 | ||||
-rw-r--r-- | gdb/symfile.c | 2 |
4 files changed, 22 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 165ffda..393d43e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2019-12-12 Tom Tromey <tom@tromey.com> + + * symfile.c (symbol_file_add_with_addrs): Use objfile::make. + * objfiles.h (struct objfile): Make constructor private. + <make>: New static method. + * jit.c (jit_object_close_impl): Update. + 2019-12-12 Simon Marchi <simon.marchi@polymtl.ca> * jit.c (jit_reader_try_read_symtab): Replace xmalloc/xfree with @@ -786,8 +786,8 @@ jit_object_close_impl (struct gdb_symbol_callbacks *cb, priv_data = (jit_dbg_reader_data *) cb->priv_data; - objfile = new struct objfile (NULL, "<< JIT compiled code >>", - OBJF_NOT_FILENAME); + objfile = objfile::make (nullptr, "<< JIT compiled code >>", + OBJF_NOT_FILENAME); objfile->per_bfd->gdbarch = target_gdbarch (); j = NULL; diff --git a/gdb/objfiles.h b/gdb/objfiles.h index 1601cfe..b5c04eb 100644 --- a/gdb/objfiles.h +++ b/gdb/objfiles.h @@ -394,7 +394,19 @@ private: struct objfile { +private: + + /* The only way to create an objfile is to call objfile::make. */ objfile (bfd *, const char *, objfile_flags); + +public: + + /* Create an objfile. */ + static objfile *make (bfd *bfd_, const char *name_, objfile_flags flags_) + { + return new objfile (bfd_, name_, flags_); + } + ~objfile (); DISABLE_COPY_AND_ASSIGN (objfile); diff --git a/gdb/symfile.c b/gdb/symfile.c index aec07d7..eef27a8 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -1093,7 +1093,7 @@ symbol_file_add_with_addrs (bfd *abfd, const char *name, if (mainline) flags |= OBJF_MAINLINE; - objfile = new struct objfile (abfd, name, flags); + objfile = objfile::make (abfd, name, flags); if (parent) add_separate_debug_objfile (objfile, parent); |