diff options
author | Tom Tromey <tromey@redhat.com> | 2012-07-23 18:54:26 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2012-07-23 18:54:26 +0000 |
commit | da1cc82f30edcf2d49dd89911fc471a5e07d3d94 (patch) | |
tree | ce59f0809b5855b933aa977cad83177573e01bec /gdb/exec.c | |
parent | 6c18f3e0f4d7e0399b39a0d554b5152af71a94e2 (diff) | |
download | gdb-da1cc82f30edcf2d49dd89911fc471a5e07d3d94.zip gdb-da1cc82f30edcf2d49dd89911fc471a5e07d3d94.tar.gz gdb-da1cc82f30edcf2d49dd89911fc471a5e07d3d94.tar.bz2 |
* 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
@@ -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) : ""; |