forked from Imagelibrary/binutils-gdb
gdb: remove the pop_all_targets (and friends) global functions
This commit removes the global functions pop_all_targets, pop_all_targets_above, and pop_all_targets_at_and_above, and makes them methods on the inferior class. As the pop_all_targets functions will unpush each target, which decrements the targets reference count, it is possible that the target might be closed. Right now, closing a target, in some cases, depends on the current inferior being set correctly, that is, to the inferior from which the target was popped. To facilitate this I have used switch_to_inferior_no_thread within the new methods. Previously it was the responsibility of the caller to ensure that the correct inferior was selected. In a couple of places (event-top.c and top.c) I have been able to remove a previous switch_to_inferior_no_thread call. In remote_unpush_target (remote.c) I have left the switch_to_inferior_no_thread call as it is required for the generic_mourn_inferior call.
This commit is contained in:
@@ -5717,7 +5717,7 @@ remote_unpush_target (remote_target *target)
|
||||
for (inferior *inf : all_inferiors (target))
|
||||
{
|
||||
switch_to_inferior_no_thread (inf);
|
||||
pop_all_targets_at_and_above (process_stratum);
|
||||
inf->pop_all_targets_at_and_above (process_stratum);
|
||||
generic_mourn_inferior ();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user