summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2026-01-06 11:45:16 +0100
committerJulian Andres Klode <jak@debian.org>2026-01-31 15:08:29 +0100
commitceca5e8d0f9e1a1c5297ed79f00ca76c61e2140c (patch)
tree18a63e606dbeba7d3ebd68c8fcd099077159706d /apt-pkg
parent0a37f95b2d9582c5cad95725302abaf0635ee8a3 (diff)
solver3: Use LiftedBool for Obsolete state
Quite a convenient way since we need exactly lifted bool semantics
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/solver3.cc12
-rw-r--r--apt-pkg/solver3.h2
2 files changed, 7 insertions, 7 deletions
diff --git a/apt-pkg/solver3.cc b/apt-pkg/solver3.cc
index a09c27f2a..1532acf44 100644
--- a/apt-pkg/solver3.cc
+++ b/apt-pkg/solver3.cc
@@ -885,7 +885,7 @@ bool DependencySolver::ObsoletedByNewerSourceVersion(pkgCache::VerIterator cand)
if (priority == 0 || priority < candPriority)
continue;
- pkgObsolete[pkg] = 2;
+ pkgObsolete[pkg] = LiftedBool::True;
if (debug >= 3)
std::cerr << "Obsolete: " << cand.ParentPkg().FullName() << "=" << cand.VerStr() << " due to " << ver.ParentPkg().FullName() << "=" << ver.VerStr() << "\n";
return true;
@@ -898,8 +898,8 @@ bool DependencySolver::Obsolete(pkgCache::PkgIterator pkg, bool AllowManual) con
{
if ((*this)[pkg].flags.manual && not AllowManual)
return false;
- if (pkgObsolete[pkg] != 0)
- return pkgObsolete[pkg] == 2;
+ if (pkgObsolete[pkg] != LiftedBool::Undefined)
+ return pkgObsolete[pkg] == LiftedBool::True;
auto ver = GetCandidateVer(pkg);
@@ -909,7 +909,7 @@ bool DependencySolver::Obsolete(pkgCache::PkgIterator pkg, bool AllowManual) con
{
if (debug >= 3)
std::cerr << "Obsolete: " << pkg.FullName() << " - not installable\n";
- pkgObsolete[pkg] = 2;
+ pkgObsolete[pkg] = LiftedBool::True;
return true;
}
@@ -921,14 +921,14 @@ bool DependencySolver::Obsolete(pkgCache::PkgIterator pkg, bool AllowManual) con
{
if (ver.Downloadable())
{
- pkgObsolete[pkg] = 1;
+ pkgObsolete[pkg] = LiftedBool::False;
return false;
}
}
if (debug >= 3)
std::cerr << "Obsolete: " << ver.ParentPkg().FullName() << "=" << ver.VerStr() << " - not installable\n";
- pkgObsolete[pkg] = 2;
+ pkgObsolete[pkg] = LiftedBool::True;
return true;
}
void DependencySolver::Discover(Var var)
diff --git a/apt-pkg/solver3.h b/apt-pkg/solver3.h
index 4a2b4ac8d..ecb6e4160 100644
--- a/apt-pkg/solver3.h
+++ b/apt-pkg/solver3.h
@@ -442,7 +442,7 @@ class DependencySolver : public Solver
bool KeepSuggests{_config->FindB("APT::AutoRemove::SuggestsImportant", true)};
// Helper functions for detecting obsolete packages
- mutable FastContiguousCacheMap<pkgCache::Package, char> pkgObsolete;
+ mutable FastContiguousCacheMap<pkgCache::Package, LiftedBool> pkgObsolete;
bool Obsolete(pkgCache::PkgIterator pkg, bool AllowManual = false) const;
bool ObsoletedByNewerSourceVersion(pkgCache::VerIterator cand) const;