aboutsummaryrefslogtreecommitdiff
path: root/gdb/bfd-target.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-05-04 10:17:52 -0600
committerTom Tromey <tom@tromey.com>2018-05-04 12:10:43 -0600
commitade72a3453670d518ba14fe47bc7a64df81ce766 (patch)
tree4482952670602339931d019c8f03afe6144a5ca8 /gdb/bfd-target.c
parent2be4d7f0e0f733ba0acc2120fdff62bd83fb8b3a (diff)
downloadgdb-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.c6
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);
}