diff options
author | Tom Tromey <tom@tromey.com> | 2018-05-04 10:17:52 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2018-05-04 12:10:43 -0600 |
commit | ade72a3453670d518ba14fe47bc7a64df81ce766 (patch) | |
tree | 4482952670602339931d019c8f03afe6144a5ca8 /gdb/bfd-target.c | |
parent | 2be4d7f0e0f733ba0acc2120fdff62bd83fb8b3a (diff) | |
download | gdb-ade72a3453670d518ba14fe47bc7a64df81ce766.zip gdb-ade72a3453670d518ba14fe47bc7a64df81ce766.tar.gz gdb-ade72a3453670d518ba14fe47bc7a64df81ce766.tar.bz2 |
Use gdb_bfd_ref_ptr in target_bfd
I noticed that target_bfd was using manual reference counting for the
BFD it held. This patch changes it to use gdb_bfd_ref_ptr instead.
Tested by the buildbot.
ChangeLog
2018-05-04 Tom Tromey <tom@tromey.com>
* bfd-target.c (target_bfd::m_bfd): Now a gdb_bfd_ref_ptr.
(target_bfd::target_bfd, target_bfd::~target_bfd): Update.
Diffstat (limited to 'gdb/bfd-target.c')
-rw-r--r-- | gdb/bfd-target.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/gdb/bfd-target.c b/gdb/bfd-target.c index ba194d7..6138d45 100644 --- a/gdb/bfd-target.c +++ b/gdb/bfd-target.c @@ -53,7 +53,7 @@ public: private: /* The BFD we're wrapping. */ - struct bfd *m_bfd; + gdb_bfd_ref_ptr m_bfd; /* The section table build from the ALLOC sections in BFD. Note that we can't rely on extracting the BFD from a random section in @@ -90,10 +90,9 @@ target_bfd::get_section_table () } target_bfd::target_bfd (struct bfd *abfd) + : m_bfd (gdb_bfd_ref_ptr::new_reference (abfd)) { this->to_stratum = file_stratum; - m_bfd = abfd; - gdb_bfd_ref (abfd); m_table.sections = NULL; m_table.sections_end = NULL; build_section_table (abfd, &m_table.sections, &m_table.sections_end); @@ -101,7 +100,6 @@ target_bfd::target_bfd (struct bfd *abfd) target_bfd::~target_bfd () { - gdb_bfd_unref (m_bfd); xfree (m_table.sections); } |