]> git.saurik.com Git - apt.git/commitdiff
no mode changes should obviously be ok for pkgDepCache::IsModeChangeOk
authorDavid Kalnischkies <kalnischkies@gmail.com>
Fri, 9 Nov 2012 09:47:30 +0000 (10:47 +0100)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Fri, 9 Nov 2012 09:47:30 +0000 (10:47 +0100)
apt-pkg/depcache.cc
debian/changelog

index 6ceb18492c962144324ac2189f9a020a750f79f1..2ec346f0b2c04c06562e4d68e7b4e3ea077e7a2a 100644 (file)
@@ -913,11 +913,15 @@ bool pkgDepCache::IsModeChangeOk(ModeList const mode, PkgIterator const &Pkg,
       return true;
 
    StateCache &P = PkgState[Pkg->ID];
+   // not changing the mode is obviously also fine as we might want to call
+   // e.g. MarkInstall multiple times with different arguments for the same package
+   if (P.Mode == mode)
+      return true;
 
    // if previous state was set by user only user can reset it
    if ((P.iFlags & Protected) == Protected)
    {
-      if (unlikely(DebugMarker == true) && P.Mode != mode)
+      if (unlikely(DebugMarker == true))
         std::clog << OutputInDepth(Depth) << "Ignore Mark" << PrintMode(mode)
                   << " of " << Pkg << " as its mode (" << PrintMode(P.Mode)
                   << ") is protected" << std::endl;
@@ -927,7 +931,7 @@ bool pkgDepCache::IsModeChangeOk(ModeList const mode, PkgIterator const &Pkg,
    else if (mode != ModeKeep && Pkg->SelectedState == pkgCache::State::Hold &&
            _config->FindB("APT::Ignore-Hold",false) == false)
    {
-      if (unlikely(DebugMarker == true) && P.Mode != mode)
+      if (unlikely(DebugMarker == true))
         std::clog << OutputInDepth(Depth) << "Hold prevents Mark" << PrintMode(mode)
                   << " of " << Pkg << std::endl;
       return false;
index 10a3b7252e24215c1ec172dec773ebc0cab14f18..7644320c3b41e0067189417a78a3cdb2bb9b9179 100644 (file)
@@ -13,6 +13,7 @@ apt (0.9.7.7) UNRELEASED; urgency=low
   * apt-pkg/depcache.cc:
     - don't call MarkInstall with the FromUser flag set for packages
       which are dependencies of APT::Never-MarkAuto-Sections matchers
+    - no mode changes should obviously be ok for pkgDepCache::IsModeChangeOk
 
  -- Jordi Mallach <jordi@debian.org>  Thu, 18 Oct 2012 23:30:46 +0200