2004-01-05 Andrew Cagney <cagney@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Mon, 5 Jan 2004 22:32:23 +0000 (22:32 +0000)
committerAndrew Cagney <cagney@redhat.com>
Mon, 5 Jan 2004 22:32:23 +0000 (22:32 +0000)
* target.c (unpush_target): Only close a target that is in the
target stack.

gdb/ChangeLog
gdb/target.c

index 2c4903e75d60b1d1aebba511577b7507e1bad05c..4a0ba8be9dad49ad2de62e5717752570d5b4254d 100644 (file)
@@ -1,3 +1,8 @@
+2004-01-05  Andrew Cagney  <cagney@redhat.com>
+
+       * target.c (unpush_target): Only close a target that is in the
+       target stack.
+
 2004-01-05  Mark Kettenis  <kettenis@gnu.org>
 
        * sparc-tdep.c (sparc_extract_struct_value_address): Get the
index 4c12bda3f8ad07c0ca29e528b2201f2cd1968813..cc3b747d4b8cc930fcfcbf2820a4640115fa80bb 100644 (file)
@@ -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;