From 06333fea767dc1eaf88ac286293fcbaa0ef2de9e Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 11 May 2018 12:36:19 -0600 Subject: Make "cbfd" a gdb_bfd_ref_ptr This changes program_space::cbfd to be a gdb_bfd_ref_ptr. This makes it somewhat less error-prone to use, because now it manages the reference counting automatically. Tested by the buildbot. 2018-05-16 Tom Tromey * gdbcore.h (core_bfd): Redefine. * corelow.c (core_target::close): Update. (core_target_open): Update. * progspace.h (struct program_space) : Now a gdb_bfd_ref_ptr. --- gdb/corelow.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'gdb/corelow.c') diff --git a/gdb/corelow.c b/gdb/corelow.c index 439fe1338a7..c6175279da9 100644 --- a/gdb/corelow.c +++ b/gdb/corelow.c @@ -270,8 +270,7 @@ core_target::close () comments in clear_solib in solib.c. */ clear_solib (); - gdb_bfd_unref (core_bfd); - core_bfd = NULL; + current_program_space->cbfd.reset (nullptr); } /* Core targets are heap-allocated (see core_target_open), so here @@ -406,7 +405,7 @@ core_target_open (const char *arg, int from_tty) filename.get (), bfd_errmsg (bfd_get_error ())); } - core_bfd = temp_bfd.release (); + current_program_space->cbfd = std::move (temp_bfd); core_target *target = new core_target (); -- cgit v1.2.3-65-gdbad