forked from Imagelibrary/binutils-gdb
* 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.
This commit is contained in:
@@ -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) : "";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user