Commit d94cf0bc authored by Samuel Giddins's avatar Samuel Giddins

[Resolver] Avoid allocations in #spec_is_platform_compatible

parent c8e95963
...@@ -535,11 +535,15 @@ module Pod ...@@ -535,11 +535,15 @@ module Pod
vertex = dependency_graph.vertex_named(dependency.name) vertex = dependency_graph.vertex_named(dependency.name)
predecessors = vertex.recursive_predecessors.select(&:root) predecessors = vertex.recursive_predecessors.select(&:root)
predecessors << vertex if vertex.root? predecessors << vertex if vertex.root?
platforms_to_satisfy = predecessors.flat_map(&:explicit_requirements).flat_map { |r| @platforms_by_dependency[r] } platforms_to_satisfy = predecessors.lazy.flat_map(&:explicit_requirements).flat_map { |r| @platforms_by_dependency[r] }
available_platforms = spec.available_platforms
platforms_to_satisfy.all? do |platform_to_satisfy| platforms_to_satisfy.all? do |platform_to_satisfy|
spec.available_platforms.select { |spec_platform| spec_platform.name == platform_to_satisfy.name }. available_platforms.all? do |spec_platform|
all? { |spec_platform| platform_to_satisfy.supports?(spec_platform) } next true unless spec_platform.name == platform_to_satisfy.name
platform_to_satisfy.supports?(spec_platform)
end
end end
end end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment