diff options
author | Simon Marchi <simon.marchi@polymtl.ca> | 2020-07-22 15:56:06 +0200 |
---|---|---|
committer | Tankut Baris Aktemur <tankut.baris.aktemur@intel.com> | 2020-07-22 15:56:06 +0200 |
commit | 238b5c9f0881b2e27d2eb111ad9c7fe874859acf (patch) | |
tree | 4a6c48835685490c23f61d568798cf575ed39acc /gdb/objfiles.h | |
parent | fe053b9e85378b4df1397684266b2cddcce8123b (diff) | |
download | gdb-238b5c9f0881b2e27d2eb111ad9c7fe874859acf.zip gdb-238b5c9f0881b2e27d2eb111ad9c7fe874859acf.tar.gz gdb-238b5c9f0881b2e27d2eb111ad9c7fe874859acf.tar.bz2 |
gdb/jit: link to jit_objfile_data directly from the objfile struct
Remove the use of objfile_data to associate a jit_objfile_data with an
objfile. Instead, directly link to a jit_objfile_data from an objfile
struct. The goal is to eliminate unnecessary abstraction.
The free_objfile_data function naturally becomes the destructor of
jit_objfile_data. However, free_objfile_data accesses the objfile to
which the data is attached, which the destructor of jit_objfile_data
doesn't have access to. To work around this, add a backlink to the
owning objfile in jit_objfile_data. This is however temporary, it goes
away in a subsequent patch.
gdb/ChangeLog:
2020-07-22 Simon Marchi <simon.marchi@polymtl.ca>
* jit.h: Forward-declare `struct minimal_symbol`.
(struct jit_objfile_data): Migrate to here from jit.c; also add a
constructor, destructor, and an objfile* field.
* jit.c (jit_objfile_data): Remove.
(struct jit_objfile_data): Migrate from here to jit.h.
(jit_objfile_data::~jit_objfile_data): New destructor
implementation with code moved from free_objfile_data.
(free_objfile_data): Delete.
(get_jit_objfile_data): Update to use the jit_data field of objfile.
(jit_find_objf_with_entry_addr): Ditto.
(jit_inferior_exit_hook): Ditto.
(_initialize_jit): Remove the call to
register_objfile_data_with_cleanup.
* objfiles.h (struct objfile) <jit_data>: New field.
Diffstat (limited to 'gdb/objfiles.h')
-rw-r--r-- | gdb/objfiles.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gdb/objfiles.h b/gdb/objfiles.h index 56ff521..b21b426 100644 --- a/gdb/objfiles.h +++ b/gdb/objfiles.h @@ -36,6 +36,7 @@ #include "bcache.h" #include "gdbarch.h" #include "gdbsupport/refcounted-object.h" +#include "jit.h" struct htab; struct objfile_data; @@ -697,6 +698,9 @@ public: store these here rather than in struct block. Static links must be allocated on the objfile's obstack. */ htab_up static_links; + + /* JIT-related data for this objfile. */ + std::unique_ptr<jit_objfile_data> jit_data = nullptr; }; /* A deleter for objfile. */ |