diff options
Diffstat (limited to 'paludis/repositories/e/traditional_profile.cc')
-rw-r--r-- | paludis/repositories/e/traditional_profile.cc | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/paludis/repositories/e/traditional_profile.cc b/paludis/repositories/e/traditional_profile.cc index 3daf56c86..63ede7550 100644 --- a/paludis/repositories/e/traditional_profile.cc +++ b/paludis/repositories/e/traditional_profile.cc @@ -1020,21 +1020,20 @@ TraditionalProfile::virtuals() const return _imp->virtuals; } -const std::shared_ptr<const MaskInfo> -TraditionalProfile::profile_masked(const std::shared_ptr<const PackageID> & id) const +const std::shared_ptr<const MasksInfo> +TraditionalProfile::profile_masks(const std::shared_ptr<const PackageID> & id) const { + auto result(std::make_shared<MasksInfo>()); PackageMaskMap::const_iterator rr(_imp->package_mask.find(id->name())); - if (_imp->package_mask.end() == rr) - return std::shared_ptr<const MaskInfo>(); - else + if (_imp->package_mask.end() != rr) { for (std::list<std::pair<std::shared_ptr<const PackageDepSpec>, std::shared_ptr<const MaskInfo> > >::const_iterator k(rr->second.begin()), k_end(rr->second.end()) ; k != k_end ; ++k) if (match_package(*_imp->env, *k->first, id, make_null_shared_ptr(), { })) - return k->second; + result->push_back(*k->second); } - return std::shared_ptr<const MaskInfo>(); + return result; } const std::shared_ptr<const Set<std::string> > |