Change program_space::ebfd to a gdb_bfd_ref_ptr
This changes program_space::ebfd to a gdb_bfd_ref_ptr, removing some manual management. gdb/ChangeLog 2020-10-29 Tom Tromey <tom@tromey.com> * exec.c (exec_file_attach): Update. * progspace.c (program_space::exec_close): Update. * progspace.h (struct program_space) <ebfd>: Now a gdb_bfd_ref_ptr. <set_exec_bfd>: Change argument type. <exec_bfd>: Update.
This commit is contained in:
parent
7e10abd146
commit
19f6550ebb
4 changed files with 16 additions and 9 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2020-10-29 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
|
* exec.c (exec_file_attach): Update.
|
||||||
|
* progspace.c (program_space::exec_close): Update.
|
||||||
|
* progspace.h (struct program_space) <ebfd>: Now a
|
||||||
|
gdb_bfd_ref_ptr.
|
||||||
|
<set_exec_bfd>: Change argument type.
|
||||||
|
<exec_bfd>: Update.
|
||||||
|
|
||||||
2020-10-29 Tom Tromey <tom@tromey.com>
|
2020-10-29 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
* windows-tdep.c (windows_solib_create_inferior_hook): Update.
|
* windows-tdep.c (windows_solib_create_inferior_hook): Update.
|
||||||
|
|
|
@ -453,7 +453,7 @@ exec_file_attach (const char *filename, int from_tty)
|
||||||
FOPEN_RUB, scratch_chan);
|
FOPEN_RUB, scratch_chan);
|
||||||
else
|
else
|
||||||
temp = gdb_bfd_open (canonical_pathname, gnutarget, scratch_chan);
|
temp = gdb_bfd_open (canonical_pathname, gnutarget, scratch_chan);
|
||||||
current_program_space->set_exec_bfd (temp.release ());
|
current_program_space->set_exec_bfd (std::move (temp));
|
||||||
|
|
||||||
if (!current_program_space->exec_bfd ())
|
if (!current_program_space->exec_bfd ())
|
||||||
{
|
{
|
||||||
|
|
|
@ -228,13 +228,11 @@ program_space::solibs () const
|
||||||
void
|
void
|
||||||
program_space::exec_close ()
|
program_space::exec_close ()
|
||||||
{
|
{
|
||||||
if (ebfd)
|
if (ebfd != nullptr)
|
||||||
{
|
{
|
||||||
gdb_bfd_unref (ebfd);
|
|
||||||
|
|
||||||
/* Removing target sections may close the exec_ops target.
|
/* Removing target sections may close the exec_ops target.
|
||||||
Clear ebfd before doing so to prevent recursion. */
|
Clear ebfd before doing so to prevent recursion. */
|
||||||
ebfd = NULL;
|
ebfd.reset (nullptr);
|
||||||
ebfd_mtime = 0;
|
ebfd_mtime = 0;
|
||||||
|
|
||||||
remove_target_sections (&ebfd);
|
remove_target_sections (&ebfd);
|
||||||
|
|
|
@ -279,13 +279,13 @@ struct program_space
|
||||||
/* Return the exec BFD for this program space. */
|
/* Return the exec BFD for this program space. */
|
||||||
bfd *exec_bfd () const
|
bfd *exec_bfd () const
|
||||||
{
|
{
|
||||||
return ebfd;
|
return ebfd.get ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set the exec BFD for this program space to ABFD. */
|
/* Set the exec BFD for this program space to ABFD. */
|
||||||
void set_exec_bfd (bfd *abfd)
|
void set_exec_bfd (gdb_bfd_ref_ptr &&abfd)
|
||||||
{
|
{
|
||||||
ebfd = abfd;
|
ebfd = std::move (abfd);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Unique ID number. */
|
/* Unique ID number. */
|
||||||
|
@ -295,7 +295,7 @@ struct program_space
|
||||||
managed by the exec target. */
|
managed by the exec target. */
|
||||||
|
|
||||||
/* The BFD handle for the main executable. */
|
/* The BFD handle for the main executable. */
|
||||||
bfd *ebfd = NULL;
|
gdb_bfd_ref_ptr ebfd;
|
||||||
/* The last-modified time, from when the exec was brought in. */
|
/* The last-modified time, from when the exec was brought in. */
|
||||||
long ebfd_mtime = 0;
|
long ebfd_mtime = 0;
|
||||||
/* Similar to bfd_get_filename (exec_bfd) but in original form given
|
/* Similar to bfd_get_filename (exec_bfd) but in original form given
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue