+ map_stringitem_t* &OldDepLast)
+{
+ map_stringitem_t index = 0;
+ if (Version.empty() == false)
+ {
+ int const CmpOp = Op & 0x0F;
+ // =-deps are used (79:1) for lockstep on same-source packages (e.g. data-packages)
+ if (CmpOp == pkgCache::Dep::Equals && strcmp(Version.c_str(), Ver.VerStr()) == 0)
+ index = Ver->VerStr;
+
+ if (index == 0)
+ {
+ void const * const oldMap = Map.Data();
+ index = StoreString(VERSION, Version);
+ if (unlikely(index == 0))
+ return false;
+ if (OldDepLast != 0 && oldMap != Map.Data())
+ OldDepLast += (map_pointer_t const * const) Map.Data() - (map_pointer_t const * const) oldMap;
+ }
+ }
+ return NewDepends(Pkg, Ver, index, Op, Type, OldDepLast);
+}
+bool pkgCacheGenerator::NewDepends(pkgCache::PkgIterator &Pkg,
+ pkgCache::VerIterator &Ver,
+ map_pointer_t const Version,
+ unsigned int const &Op,
+ unsigned int const &Type,
+ map_pointer_t* &OldDepLast)