From 110b8541dca943a5513ce2ad4e1e8863806aa56f Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Tue, 17 Jan 2023 17:35:27 +0300 Subject: Add support for multiple system package versions --- bpkg/package.cxx | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'bpkg/package.cxx') diff --git a/bpkg/package.cxx b/bpkg/package.cxx index fe04248..03416be 100644 --- a/bpkg/package.cxx +++ b/bpkg/package.cxx @@ -71,10 +71,10 @@ namespace bpkg // available_package // - const version* available_package:: - system_version (database& db) const + const system_package_versions* available_package:: + system_versions (database& db) const { - if (!system_version_) + if (system_versions_.empty ()) { assert (db.system_repository); @@ -83,36 +83,36 @@ namespace bpkg // Only cache if it is authoritative. // if (sp->authoritative) - system_version_ = sp->version; + system_versions_ = sp->versions; else - return &sp->version; + return &sp->versions; } } - return system_version_ ? &*system_version_ : nullptr; + return !system_versions_.empty () ? &system_versions_ : nullptr; } - pair available_package:: - system_version_authoritative (database& db) const + pair available_package:: + system_versions_authoritative (database& db) const { assert (db.system_repository); const system_package* sp (db.system_repository->find (id.name)); - if (!system_version_) + if (system_versions_.empty ()) { if (sp != nullptr) { // Only cache if it is authoritative. // if (sp->authoritative) - system_version_ = sp->version; + system_versions_ = sp->versions; else - return make_pair (&sp->version, false); + return make_pair (&sp->versions, false); } } - return make_pair (system_version_ ? &*system_version_ : nullptr, + return make_pair (!system_versions_.empty () ? &system_versions_ : nullptr, sp != nullptr ? sp->authoritative : false); } -- cgit v1.1