]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/deb/debversion.cc
Bug#739988: Fix autopkgtest missing dependencies and locale
[apt.git] / apt-pkg / deb / debversion.cc
index 94d357846761d973fd49f065d3e62b246099f911..74e2552ffbea4473d5138fb2c034d707c0b12dfe 100644 (file)
@@ -116,7 +116,7 @@ int debVersioningSystem::CmpFragment(const char *A,const char *AEnd,
       return 1;
    }
 
-   // Shouldnt happen
+   // Shouldn't happen
    return 1;
 }
                                                                        /*}}}*/
@@ -217,16 +217,12 @@ bool debVersioningSystem::CheckDep(const char *PkgVer,
       return false;
    Op &= 0x0F;
 
-   size_t const lenPkgVer = strlen(PkgVer);
-   size_t const lenDepVer = strlen(DepVer);
+   // fast track for (equal) strings [by location] which are by definition equal versions
+   if (PkgVer == DepVer)
+      return Op == pkgCache::Dep::Equals || Op == pkgCache::Dep::LessEq || Op == pkgCache::Dep::GreaterEq;
 
-   // take a shortcut for equals which are string-equal as well
-   if (Op == pkgCache::Dep::Equals && lenPkgVer == lenDepVer &&
-        memcmp(PkgVer, DepVer, lenPkgVer) == 0)
-      return true;
-
-   // Perform the actual comparision.
-   int const Res = DoCmpVersion(PkgVer, PkgVer + lenPkgVer, DepVer, DepVer + lenDepVer);
+   // Perform the actual comparison.
+   int const Res = CmpVersion(PkgVer, DepVer);
    switch (Op)
    {
       case pkgCache::Dep::LessEq: