for (std::vector<pkgCache::RlsFileIterator*>::const_iterator i = Dynamic<pkgCache::RlsFileIterator>::toReMap.begin();
i != Dynamic<pkgCache::RlsFileIterator>::toReMap.end(); ++i)
(*i)->ReMap(oldMap, newMap);
+ for (APT::StringView* ViewP : Dynamic<APT::StringView>::toReMap) {
+ // Ignore views outside of the cache.
+ if (ViewP->data() < static_cast<const char*>(oldMap)
+ || ViewP->data() > static_cast<const char*>(oldMap) + oldSize)
+ continue;
+ const char *data = ViewP->data() + (static_cast<const char*>(newMap) - static_cast<const char*>(oldMap));
+ *ViewP = StringView(data , ViewP->size());
+ }
} /*}}}*/
// CacheGenerator::WriteStringInMap /*{{{*/
map_stringitem_t pkgCacheGenerator::WriteStringInMap(const char *String,
/* This creates a new group structure and adds it to the hash table */
bool pkgCacheGenerator::NewGroup(pkgCache::GrpIterator &Grp, StringView Name)
{
+ Dynamic<StringView> DName(Name);
Grp = Cache.FindGrp(Name);
if (Grp.end() == false)
return true;
bool pkgCacheGenerator::NewPackage(pkgCache::PkgIterator &Pkg, StringView Name,
StringView Arch) {
pkgCache::GrpIterator Grp;
+ Dynamic<StringView> DName(Name);
+ Dynamic<StringView> DArch(Arch);
Dynamic<pkgCache::GrpIterator> DynGrp(Grp);
if (unlikely(NewGroup(Grp, Name) == false))
return false;
{
pkgCache::GrpIterator Grp;
Dynamic<pkgCache::GrpIterator> DynGrp(Grp);
+ Dynamic<StringView> DynPackageName(PackageName);
+ Dynamic<StringView> DynArch(Arch);
+ Dynamic<StringView> DynVersion(Version);
if (unlikely(Owner->NewGroup(Grp, PackageName) == false))
return false;
uint8_t const Flags)
{
pkgCache const &Cache = Owner->Cache;
+ Dynamic<StringView> DynPkgName(PkgName);
+ Dynamic<StringView> DynArch(PkgArch);
+ Dynamic<StringView> DynVersion(Version);
// We do not add self referencing provides
if (Ver.ParentPkg().Name() == PkgName && (PkgArch == Ver.ParentPkg().Arch() ||
pkgCache &Cache = Owner->Cache;
pkgCache::GrpIterator Grp = Cache.FindGrp(Package);
Dynamic<pkgCache::GrpIterator> DynGrp(Grp);
+ Dynamic<StringView> DynPackage(Package);
+ Dynamic<StringView> DynVersion(Version);
if (Grp.end() == true)
return NewProvides(Ver, Package, Cache.NativeArch(), Version, Flags);