From da1cc82f30edcf2d49dd89911fc471a5e07d3d94 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 23 Jul 2012 18:54:26 +0000 Subject: * rs6000-nat.c (add_vmap): Rewrite archive loop. Fix reference counting. * exec.c (exec_close_1): Unconditionally release vmap's BFD. (map_vmap): Acquire a reference to the BFD. --- gdb/exec.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'gdb/exec.c') diff --git a/gdb/exec.c b/gdb/exec.c index 9b95e02..e076609 100644 --- a/gdb/exec.c +++ b/gdb/exec.c @@ -127,16 +127,13 @@ exec_close_1 (int quitting) vp = nxt; nxt = vp->nxt; - /* if there is an objfile associated with this bfd, - free_objfile() will do proper cleanup of objfile *and* bfd. */ - if (vp->objfile) { free_objfile (vp->objfile); need_symtab_cleanup = 1; } - else if (vp->bfd != exec_bfd) - gdb_bfd_unref (vp->bfd); + + gdb_bfd_unref (vp->bfd); xfree (vp); } @@ -548,6 +545,7 @@ map_vmap (bfd *abfd, bfd *arch) memset ((char *) vp, '\0', sizeof (*vp)); vp->nxt = 0; vp->bfd = abfd; + gdb_bfd_ref (abfd); vp->name = bfd_get_filename (arch ? arch : abfd); vp->member = arch ? bfd_get_filename (abfd) : ""; -- cgit v1.1