From 7605509f7cc97e5e94d3159f9cd5c2c98b876720 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 19 Sep 2012 11:35:53 +0200 Subject: * apt-pkg/pkgcachegen.cc: - ensure that dependencies for packages:none are always generated --- apt-pkg/pkgcachegen.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'apt-pkg/pkgcachegen.cc') diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc index 54b07c465..5f37330c9 100644 --- a/apt-pkg/pkgcachegen.cc +++ b/apt-pkg/pkgcachegen.cc @@ -922,7 +922,7 @@ bool pkgCacheGenerator::ListParser::NewDepends(pkgCache::VerIterator &Ver, // Locate the target package pkgCache::PkgIterator Pkg = Grp.FindPkg(Arch); // we don't create 'none' packages and their dependencies if we can avoid it … - if (Pkg.end() == true && Arch == "none") + if (Pkg.end() == true && Arch == "none" && strcmp(Ver.ParentPkg().Arch(), "none") != 0) return true; Dynamic DynPkg(Pkg); if (Pkg.end() == true) { -- cgit v1.2.3 From 9abb228384185565478a137446a74e42af0c95b5 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 19 Sep 2012 11:39:20 +0200 Subject: add 3 missing remap registrations causing a segfault in case we use the not remapped iterators after a move of the mmap again --- apt-pkg/pkgcachegen.cc | 3 +++ 1 file changed, 3 insertions(+) (limited to 'apt-pkg/pkgcachegen.cc') diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc index 5f37330c9..d5f1f9072 100644 --- a/apt-pkg/pkgcachegen.cc +++ b/apt-pkg/pkgcachegen.cc @@ -209,6 +209,7 @@ bool pkgCacheGenerator::MergeList(ListParser &List, just for these :none packages to a proper MultiArchCache, so just ensure that we have always a native package structure first for SingleArch */ pkgCache::PkgIterator NP; + Dynamic DynPkg(NP); if (NewPackage(NP, PackageName, _config->Find("APT::Architecture")) == false) // TRANSLATOR: The first placeholder is a package name, // the other two should be copied verbatim as they include debug info @@ -459,6 +460,7 @@ bool pkgCacheGenerator::MergeListVersion(ListParser &List, pkgCache::PkgIterator map_ptrloc *OldDepLast = NULL; pkgCache::VerIterator ConVersion = D.ParentVer(); + Dynamic DynV(ConVersion); // duplicate the Conflicts/Breaks/Replaces for :none arch if (D->Version == 0) NewDepends(Pkg, ConVersion, "", 0, D->Type, OldDepLast); @@ -772,6 +774,7 @@ unsigned long pkgCacheGenerator::NewVersion(pkgCache::VerIterator &Ver, // Fill it in Ver = pkgCache::VerIterator(Cache,Cache.VerP + Version); + Dynamic DynV(Ver); Ver->NextVer = Next; Ver->ID = Cache.HeaderP->VersionCount++; map_ptrloc const idxVerStr = WriteStringInMap(VerStr); -- cgit v1.2.3