summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/algorithms.cc3
-rw-r--r--apt-pkg/algorithms.h1
-rw-r--r--apt-pkg/deb/dpkgpm.cc2
-rw-r--r--apt-pkg/packagemanager.cc4
-rw-r--r--debian/changelog12
5 files changed, 15 insertions, 7 deletions
diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc
index eaab4c0ea..59f994cd7 100644
--- a/apt-pkg/algorithms.cc
+++ b/apt-pkg/algorithms.cc
@@ -37,7 +37,8 @@ pkgProblemResolver *pkgProblemResolver::This = 0;
this is not necessary since the pkgCaches are fully shared now. */
pkgSimulate::pkgSimulate(pkgDepCache *Cache) : pkgPackageManager(Cache),
iPolicy(Cache),
- Sim(&Cache->GetCache(),&iPolicy)
+ Sim(&Cache->GetCache(),&iPolicy),
+ group(Sim)
{
Sim.Init(0);
Flags = new unsigned char[Cache->Head().PackageCount];
diff --git a/apt-pkg/algorithms.h b/apt-pkg/algorithms.h
index defaed57d..d183cd213 100644
--- a/apt-pkg/algorithms.h
+++ b/apt-pkg/algorithms.h
@@ -60,6 +60,7 @@ class pkgSimulate : public pkgPackageManager
Policy iPolicy;
pkgDepCache Sim;
+ pkgDepCache::ActionGroup group;
// The Actuall installation implementation
virtual bool Install(PkgIterator Pkg,string File);
diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc
index 70dd09bc6..4fad0fd52 100644
--- a/apt-pkg/deb/dpkgpm.cc
+++ b/apt-pkg/deb/dpkgpm.cc
@@ -956,6 +956,8 @@ bool pkgDPkgPM::Go(int OutStatusFd)
if (RunScripts("DPkg::Post-Invoke") == false)
return false;
+
+ Cache.writeStateFile(NULL);
return true;
}
/*}}}*/
diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc
index c391a6036..304d1c653 100644
--- a/apt-pkg/packagemanager.cc
+++ b/apt-pkg/packagemanager.cc
@@ -666,10 +666,6 @@ pkgPackageManager::DoInstallPostFork(int statusFd)
if(goResult == false)
return Failed;
- // if all was fine update the state file
- if(Res == Completed) {
- Cache.writeStateFile(NULL);
- }
return Res;
};
diff --git a/debian/changelog b/debian/changelog
index 8913ef4bf..796c5cff0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-apt (UNRELEASED) experimental; urgency=low
+apt (0.7.15~exp3) UNRELEASED; urgency=low
[Daniel Burrows]
* apt-pkg/deb/dpkgpm.cc:
@@ -8,7 +8,15 @@ apt (UNRELEASED) experimental; urgency=low
concern. If it becomes a concern, we can sort the static array and
use std::equal_range(). (Closes: #499322)
- --
+ [ Michael Vogt ]
+ * apt-pkg/packagemanager.cc, apt-pkg/deb/dpkgpm.cc:
+ - move the state file writting into the Go() implementation
+ of dpkgpm (closes: #498799)
+ * apt-pkg/algorithms.cc:
+ - fix simulation performance drop (thanks to Ferenc Wagner
+ for reporting the issue)
+
+ -- Michael Vogt <mvo@udebian.org> Wed, 01 Oct 2008 18:09:49 +0200
apt (0.7.15~exp2) experimental; urgency=low