From 9e4fa969656ba766212b86aca87cfd723b7c111f Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Mon, 5 Jan 2004 22:32:23 +0000 Subject: 2004-01-05 Andrew Cagney * target.c (unpush_target): Only close a target that is in the target stack. --- gdb/target.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'gdb/target.c') diff --git a/gdb/target.c b/gdb/target.c index 4c12bda3f8a..cc3b747d4b8 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -709,8 +709,6 @@ unpush_target (struct target_ops *t) struct target_ops **cur; struct target_ops *tmp; - target_close (t, 0); - /* Look for the specified target. Note that we assume that a target can only occur once in the target stack. */ @@ -723,6 +721,14 @@ unpush_target (struct target_ops *t) if ((*cur) == NULL) return 0; /* Didn't find target_ops, quit now */ + /* NOTE: cagney/2003-12-06: In '94 the close call was made + unconditional by moving it to before the above check that the + target was in the target stack (something about "Change the way + pushing and popping of targets work to support target overlays + and inheritance"). This doesn't make much sense - only open + targets should be closed. */ + target_close (t, 0); + /* Unchain the target */ tmp = (*cur); (*cur) = (*cur)->beneath; -- cgit v1.2.1