From fdcc25b760e2367325b957d9faa349fcd0e7a712 Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Wed, 12 Sep 2007 15:00:58 +0000 Subject: create _remove_all_rejected_from() out of disable_selected() --- URPM/Resolve.pm | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'URPM') diff --git a/URPM/Resolve.pm b/URPM/Resolve.pm index 36930db..70e0c8f 100644 --- a/URPM/Resolve.pm +++ b/URPM/Resolve.pm @@ -498,6 +498,15 @@ sub backtrack_selected_psel_keep { $keep and push @{$state->{rejected}{$psel->fullname}{backtrack}{keep}}, @$keep; } +#- side-effects: $state->{rejected} +sub _remove_all_rejected_from { + my ($state, $from_fullname) = @_; + + grep { + _remove_rejected_from($state, $_, $from_fullname); + } keys %{$state->{rejected}}; +} + #- side-effects: $state->{rejected} sub _remove_rejected_from { my ($state, $fullname, $from_fullname) = @_; @@ -1106,12 +1115,7 @@ sub disable_selected { #- perform a closure on rejected packages (removed, obsoleted or avoided). my @rejected_todo = scalar $pkg->fullname; while (my $fullname = shift @rejected_todo) { - my @rejecteds = keys %{$state->{rejected}}; - foreach (@rejecteds) { - if (_remove_rejected_from($state, $_, $fullname)) { - push @rejected_todo, $_; - } - } + push @rejected_todo, _remove_all_rejected_from($state, $fullname); } #- the package being examined has to be unselected. -- cgit v1.2.1