2012-01-19 Pedro Alves <palves@redhat.com>

* linux-nat.c (linux_nat_close): Call linux_nat_is_async_p and
	linux_nat_async directly instead of going through the target
	vector.
	* target.c (unpush_target): Close target after unpushing it, not
	before.
This commit is contained in:
Pedro Alves 2012-01-19 16:32:59 +00:00
parent 2fc0fe4faa
commit 305436e07a
3 changed files with 18 additions and 11 deletions

View File

@ -1,3 +1,11 @@
2012-01-19 Pedro Alves <palves@redhat.com>
* linux-nat.c (linux_nat_close): Call linux_nat_is_async_p and
linux_nat_async directly instead of going through the target
vector.
* target.c (unpush_target): Close target after unpushing it, not
before.
2012-01-19 Gary Benson <gbenson@redhat.com>
* mdebugread.c (sort_blocks): Replace integer constants with ones

View File

@ -5717,8 +5717,8 @@ static void
linux_nat_close (int quitting)
{
/* Unregister from the event loop. */
if (target_is_async_p ())
target_async (NULL, 0);
if (linux_nat_is_async_p ())
linux_nat_async (NULL, 0);
if (linux_ops->to_close)
linux_ops->to_close (quitting);

View File

@ -1010,16 +1010,10 @@ unpush_target (struct target_ops *t)
break;
}
/* If we don't find target_ops, quit. Only open targets should be
closed. */
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);
return 0;
/* Unchain the target. */
tmp = (*cur);
@ -1028,6 +1022,11 @@ unpush_target (struct target_ops *t)
update_current_target ();
/* Finally close the target. Note we do this after unchaining, so
any target method calls from within the target_close
implementation don't end up in T anymore. */
target_close (t, 0);
return 1;
}