diff --git a/src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp b/src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp index ab9060f204..28de17716e 100644 --- a/src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp @@ -44,3 +44,18 @@ ResolvableFamily::RemoveResolvable(Resolvable* resolvable, resolvable->SetFamily(NULL); fResolvables.Remove(resolvable); } + + +bool +ResolvableFamily::ResolveDependency(Dependency* dependency) +{ + for (FamilyResolvableList::Iterator it = fResolvables.GetIterator(); + Resolvable* resolvable = it.Next();) { + if (dependency->ResolvableVersionMatches(resolvable->Version())) { + resolvable->AddDependency(dependency); + return true; + } + } + + return false; +} diff --git a/src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.h b/src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.h index c63c3322f8..7d0a87fcbc 100644 --- a/src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.h +++ b/src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.h @@ -21,6 +21,8 @@ public: ResolvableDependencyList& dependenciesToUpdate); + bool ResolveDependency(Dependency* dependency); + const char* Name() const; bool IsLastResolvable(Resolvable* resolvable) const;