diff options
Diffstat (limited to 'gdb/exec.c')
-rw-r--r-- | gdb/exec.c | 8 |
1 files changed, 3 insertions, 5 deletions
@@ -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) : ""; |