diff options
author | 2011-03-30 11:37:31 +0100 | |
---|---|---|
committer | 2011-04-04 08:32:59 +0100 | |
commit | 28626b8aa3b39d400f8f9eb3a0730ac101b2e53a (patch) | |
tree | c60cfb02dcee2efcf7045ccfd53316e5a8fe94a8 /paludis/repositories/e/fix_locked_dependencies.cc | |
parent | a004eeed5dda3432dcb1a4c0a865ae24daae4fd3 (diff) | |
download | paludis-28626b8aa3b39d400f8f9eb3a0730ac101b2e53a.tar.gz paludis-28626b8aa3b39d400f8f9eb3a0730ac101b2e53a.tar.xz |
slot to requirements
Diffstat (limited to 'paludis/repositories/e/fix_locked_dependencies.cc')
-rw-r--r-- | paludis/repositories/e/fix_locked_dependencies.cc | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/paludis/repositories/e/fix_locked_dependencies.cc b/paludis/repositories/e/fix_locked_dependencies.cc index bb613609b..1f952e271 100644 --- a/paludis/repositories/e/fix_locked_dependencies.cc +++ b/paludis/repositories/e/fix_locked_dependencies.cc @@ -28,13 +28,13 @@ #include <paludis/dep_spec.hh> #include <paludis/environment.hh> #include <paludis/package_id.hh> -#include <paludis/elike_slot_requirement.hh> #include <paludis/selection.hh> #include <paludis/generator.hh> #include <paludis/filter.hh> #include <paludis/filtered_generator.hh> #include <paludis/metadata_key.hh> #include <paludis/partially_made_package_dep_spec.hh> +#include <paludis/package_dep_spec_constraint.hh> #include <functional> #include <algorithm> #include <list> @@ -99,11 +99,7 @@ namespace do { - if (! node.spec()->slot_requirement_ptr()) - break; - - const SlotAnyLockedRequirement * const r(visitor_cast<const SlotAnyLockedRequirement>(*node.spec()->slot_requirement_ptr())); - if (! r) + if ((! node.spec()->any_slot_constraint()) || (! node.spec()->any_slot_constraint()->locking())) break; std::shared_ptr<const PackageIDSequence> matches((*env)[selection::AllVersionsSorted( @@ -113,8 +109,9 @@ namespace if ((*matches->last())->slot_key()) { - PackageDepSpec new_s(PartiallyMadePackageDepSpec(*node.spec()).slot_requirement( - std::make_shared<ELikeSlotExactRequirement>((*matches->last())->slot_key()->value(), true))); + PackageDepSpec new_s(PartiallyMadePackageDepSpec(*node.spec()) + .clear_any_slot() + .exact_slot_constraint((*matches->last())->slot_key()->value(), true)); c = std::make_shared<PackageDepSpec>(new_s); } } while (false); |