]> git.saurik.com Git - apt.git/commitdiff
pkgcache: Make hash arch-independent using fixed size integer
authorJulian Andres Klode <jak@debian.org>
Mon, 14 Dec 2015 15:15:36 +0000 (16:15 +0100)
committerJulian Andres Klode <jak@debian.org>
Mon, 14 Dec 2015 15:16:56 +0000 (16:16 +0100)
This helps writing test cases. Also adapt the test case that
expected 64-bit.

Nothing changes performance wise, the distribution of the hash
values remains intact.

apt-pkg/pkgcache.cc
test/integration/test-apt-cache

index e65e37bca902b1883ceba2177d1489a85dae56ed..23b75a64001373471701e2bc9e7e49548babd96b 100644 (file)
@@ -203,7 +203,7 @@ bool pkgCache::ReMap(bool const &Errorchecks)
    table (480 used items) */
 map_id_t pkgCache::sHash(const string &Str) const
 {
-   unsigned long Hash = 0;
+   uint32_t Hash = 0;
    for (string::const_iterator I = Str.begin(); I != Str.end(); ++I)
       Hash = 41 * Hash + tolower_ascii(*I);
    return Hash % HeaderP->GetHashTableSize();
@@ -211,7 +211,7 @@ map_id_t pkgCache::sHash(const string &Str) const
 
 map_id_t pkgCache::sHash(const char *Str) const
 {
-   unsigned long Hash = tolower_ascii(*Str);
+   uint32_t Hash = tolower_ascii(*Str);
    for (const char *I = Str + 1; *I != 0; ++I)
       Hash = 41 * Hash + tolower_ascii(*I);
    return Hash % HeaderP->GetHashTableSize();
index daa5974a134f12bcbae4809cebbb03b8523ae33e..f5bdf187ab9a7177811ec58e0f30c44e460c6820 100755 (executable)
@@ -48,8 +48,8 @@ testsuccess test -s dump.output
 
 testsuccessequal 'dpkg
 bar
-specific
 fancy
+specific
 foo' aptcache pkgnames
 testsuccessequal 'bar' aptcache pkgnames bar
 testsuccessequal 'fancy