summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Andres Klode <julian.klode@canonical.com>2021-10-19 18:11:14 +0200
committerJulian Andres Klode <julian.klode@canonical.com>2021-10-19 18:25:51 +0200
commit307912e8d74d9684875a791b0550c10afc14b0b0 (patch)
tree3bb5a33c18a86b5527b1c83a6555d7828c355e9a
parent9d9ccbbc685035e410e9f3dd5dd488a21d48661d (diff)
Invalidate cached architecture list when building cache
Fix a regression in python-apt where switching the architectures in the config between cache invocations regressed. Regression-Of: 8ff4e226af55a9feb168477a2b1a99f9c5152e54 Gbp-Dch: full
-rw-r--r--apt-pkg/pkgcache.cc4
-rw-r--r--apt-pkg/pkgcache.h2
2 files changed, 5 insertions, 1 deletions
diff --git a/apt-pkg/pkgcache.cc b/apt-pkg/pkgcache.cc
index 68efcaddc..0d18c6cf8 100644
--- a/apt-pkg/pkgcache.cc
+++ b/apt-pkg/pkgcache.cc
@@ -127,6 +127,10 @@ bool pkgCache::Header::CheckSizes(Header &Against) const
/* */
pkgCache::pkgCache(MMap *Map, bool DoMap) : Map(*Map), VS(nullptr), d(NULL)
{
+ // call getArchitectures() with cached=false to ensure that the
+ // architectures cache is re-evaluated. this is needed in cases
+ // when the APT::Architecture field changes between two cache creations
+ APT::Configuration::getArchitectures(false);
MultiArchEnabled = true;
if (DoMap == true)
ReMap();
diff --git a/apt-pkg/pkgcache.h b/apt-pkg/pkgcache.h
index 0e8046ddc..55baa3cef 100644
--- a/apt-pkg/pkgcache.h
+++ b/apt-pkg/pkgcache.h
@@ -268,7 +268,7 @@ class APT_PUBLIC pkgCache /*{{{*/
inline RlsFileIterator RlsFileBegin();
inline RlsFileIterator RlsFileEnd();
- APT_DEPRECATED_MSG("Always true") inline bool MultiArchCache() const { return MultiArchEnabled; }
+ inline bool MultiArchCache() const { return MultiArchEnabled; }
inline char const * NativeArch();
// Make me a function