Selaa lähdekoodia

* apt-pkg/deb/debversion.cc:
- add a string-equal shortcut for equal version comparisions

David Kalnischkies 13 vuotta sitten
vanhempi
commit
40befb065d
2 muutettua tiedostoa jossa 14 lisäystä ja 3 poistoa
  1. 12 3
      apt-pkg/deb/debversion.cc
  2. 2 0
      debian/changelog

+ 12 - 3
apt-pkg/deb/debversion.cc

@@ -215,10 +215,19 @@ bool debVersioningSystem::CheckDep(const char *PkgVer,
       return true;
    if (PkgVer == 0 || PkgVer[0] == 0)
       return false;
-   
+   Op &= 0x0F;
+
+   size_t const lenPkgVer = strlen(PkgVer);
+   size_t const lenDepVer = strlen(DepVer);
+
+   // 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 Res = CmpVersion(PkgVer,DepVer);
-   switch (Op & 0x0F)
+   int const Res = DoCmpVersion(PkgVer, PkgVer + lenPkgVer, DepVer, DepVer + lenDepVer);
+   switch (Op)
    {
       case pkgCache::Dep::LessEq:
       if (Res <= 0)

+ 2 - 0
debian/changelog

@@ -8,6 +8,8 @@ apt (0.9.7.8~exp2+nmu1) UNRELEASED; urgency=low
     - handle language tags for descriptions are unique strings to be shared
     - factor version string creation out of NewDepends, so we can easily reuse
       version strings e.g. for implicit multi-arch dependencies
+  * apt-pkg/deb/debversion.cc:
+    - add a string-equal shortcut for equal version comparisions
 
  -- David Kalnischkies <kalnischkies@gmail.com>  Sun, 10 Mar 2013 12:23:24 +0100