summaryrefslogtreecommitdiff
path: root/apt-pkg/depcache.cc
diff options
context:
space:
mode:
Diffstat (limited to 'apt-pkg/depcache.cc')
-rw-r--r--apt-pkg/depcache.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc
index cd5558461..425918b43 100644
--- a/apt-pkg/depcache.cc
+++ b/apt-pkg/depcache.cc
@@ -1324,7 +1324,24 @@ bool pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
break;
} while (Start++ != End);
if (not foundSolution && End.IsCritical())
+ {
+ StateCache &State = PkgState[Pkg->ID];
+ if (not State.Protect())
+ {
+ RemoveSizes(Pkg);
+ RemoveStates(Pkg);
+ if (Pkg->CurrentVer != 0)
+ State.InstallVer = State.CandidateVer = Pkg.CurrentVer();
+ else
+ State.InstallVer = State.CandidateVer = nullptr;
+ State.Mode = ModeKeep;
+ State.Update(Pkg, *this);
+ AddStates(Pkg);
+ Update(Pkg);
+ AddSizes(Pkg);
+ }
return false;
+ }
}
toInstall.clear();