diff options
Diffstat (limited to 'lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb')
-rw-r--r-- | lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb b/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb index b052e3a38e..e994e59d05 100644 --- a/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +++ b/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb @@ -23,8 +23,8 @@ module Gem::Resolver::Molinillo # (see Action#down) def down(graph) edge = make_edge(graph) - edge.origin.outgoing_edges.delete(edge) - edge.destination.incoming_edges.delete(edge) + delete_first(edge.origin.outgoing_edges, edge) + delete_first(edge.destination.incoming_edges, edge) end # @!group AddEdgeNoCircular @@ -53,6 +53,13 @@ module Gem::Resolver::Molinillo @destination = destination @requirement = requirement end + + private + + def delete_first(array, item) + return unless index = array.index(item) + array.delete_at(index) + end end end end |