diff options
author | Tom Tromey <tromey@redhat.com> | 2012-07-23 18:54:25 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2012-07-23 18:54:25 +0000 |
commit | ea9d522e8c645377ffcb789862066e6bbb844eed (patch) | |
tree | 79f79d5ea3abe76896a8871d4c54c9e5b016b185 /gdb/exec.c | |
parent | a962b808682570763a45279b35abe4fd058b21d2 (diff) | |
download | gdb-ea9d522e8c645377ffcb789862066e6bbb844eed.tar.gz |
* 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.
Diffstat (limited to 'gdb/exec.c')
-rw-r--r-- | gdb/exec.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/gdb/exec.c b/gdb/exec.c index 9b95e028ea4..e0766093d17 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) : ""; |