aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2018-05-03 00:37:09 +0100
committerPedro Alves <palves@redhat.com>2018-05-03 00:48:05 +0100
commit3fffc0701a26bc0baa563fdc793cafb3d3f02a93 (patch)
treed06a731f3dea412b5cf392e43d0baf78d6b5151d
parent6798487f5bc66ab9c34ad81fa28ba25d32a00bd9 (diff)
downloadgdb-3fffc0701a26bc0baa563fdc793cafb3d3f02a93.zip
gdb-3fffc0701a26bc0baa563fdc793cafb3d3f02a93.tar.gz
gdb-3fffc0701a26bc0baa563fdc793cafb3d3f02a93.tar.bz2
Eliminate target_ops::to_xclose
In the multi-target branch, I found no need for the target_close vs target_xclose distinction. Heap-allocated targets simply delete themselves in their target_close implementation, while singleton/static targets don't. The target_ops C++ification patches will add more commentary around target_ops's destructor, but there's no destructor yet... gdb/ChangeLog: 2018-05-02 Pedro Alves <palves@redhat.com> * bfd-target.c (target_bfd_xclose): Rename to ... (target_bfd_close): ... this. (target_bfd_reopen): Adjust. * target.c (target_close): Remove references to to_xclose. * target.h (target_ops::to_xclose): Delete. (target_ops::to_close): Update comments.
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/bfd-target.c4
-rw-r--r--gdb/target.c4
-rw-r--r--gdb/target.h9
4 files changed, 17 insertions, 9 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9dad536..2faf82d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,14 @@
2018-05-02 Pedro Alves <palves@redhat.com>
+ * bfd-target.c (target_bfd_xclose): Rename to ...
+ (target_bfd_close): ... this.
+ (target_bfd_reopen): Adjust.
+ * target.c (target_close): Remove references to to_xclose.
+ * target.h (target_ops::to_xclose): Delete.
+ (target_ops::to_close): Update comments.
+
+2018-05-02 Pedro Alves <palves@redhat.com>
+
* alpha-linux-nat.c: Include "linux-nat-trad.h" instead of
"linux-nat.h".
* configure.nat (alpha-linux, linux-mips): Add linux-nat-trad.o.
diff --git a/gdb/bfd-target.c b/gdb/bfd-target.c
index f7928ee..99b49aa 100644
--- a/gdb/bfd-target.c
+++ b/gdb/bfd-target.c
@@ -68,7 +68,7 @@ target_bfd_get_section_table (struct target_ops *ops)
}
static void
-target_bfd_xclose (struct target_ops *t)
+target_bfd_close (struct target_ops *t)
{
struct target_bfd_data *data = (struct target_bfd_data *) t->to_data;
@@ -95,7 +95,7 @@ target_bfd_reopen (struct bfd *abfd)
t->to_doc = _("You should never see this");
t->to_get_section_table = target_bfd_get_section_table;
t->to_xfer_partial = target_bfd_xfer_partial;
- t->to_xclose = target_bfd_xclose;
+ t->to_close = target_bfd_close;
t->to_data = data;
t->to_magic = OPS_MAGIC;
diff --git a/gdb/target.c b/gdb/target.c
index e8d4ae7..2ff028c 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -3416,9 +3416,7 @@ target_close (struct target_ops *targ)
fileio_handles_invalidate_target (targ);
- if (targ->to_xclose != NULL)
- targ->to_xclose (targ);
- else if (targ->to_close != NULL)
+ if (targ->to_close != NULL)
targ->to_close (targ);
if (targetdebug)
diff --git a/gdb/target.h b/gdb/target.h
index f208b10..f329362 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -418,11 +418,12 @@ struct target_ops
stack. Targets should supply this routine, if only to provide
an error message. */
void (*to_open) (const char *, int);
- /* Old targets with a static target vector provide "to_close".
- New re-entrant targets provide "to_xclose" and that is expected
- to xfree everything (including the "struct target_ops"). */
- void (*to_xclose) (struct target_ops *targ);
+
+ /* Close the target. This is where the target can handle
+ teardown. Heap-allocated targets should delete themselves
+ before returning. */
void (*to_close) (struct target_ops *);
+
/* Attaches to a process on the target side. Arguments are as
passed to the `attach' command by the user. This routine can
be called when the target is not on the target-stack, if the