Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Unified Diff: net/disk_cache/hash.cc

Issue 10920026: Move hash.h/cc from net/disk_cache to base. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: willchan, rvargas feedback Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/disk_cache/hash.h ('k') | net/disk_cache/storage_block-inl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/disk_cache/hash.cc
diff --git a/net/disk_cache/hash.cc b/net/disk_cache/hash.cc
deleted file mode 100644
index 78634b6233321965d617dd62f4251490a90e6da4..0000000000000000000000000000000000000000
--- a/net/disk_cache/hash.cc
+++ /dev/null
@@ -1,73 +0,0 @@
-// From http://www.azillionmonkeys.com/qed/hash.html
-
-#include "net/disk_cache/hash.h"
-
-typedef uint32 uint32_t;
-typedef uint16 uint16_t;
-
-namespace disk_cache {
-
-#undef get16bits
-#if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__) \
- || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__)
-#define get16bits(d) (*((const uint16_t *) (d)))
-#endif
-
-#if !defined (get16bits)
-#define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\
- +(uint32_t)(((const uint8_t *)(d))[0]) )
-#endif
-
-uint32 SuperFastHash(const char * data, int len) {
- uint32_t hash = len, tmp;
- int rem;
-
- if (len <= 0 || data == NULL)
- return 0;
-
- rem = len & 3;
- len >>= 2;
-
- /* Main loop */
- for (; len > 0; len--) {
- hash += get16bits(data);
- tmp = (get16bits(data + 2) << 11) ^ hash;
- hash = (hash << 16) ^ tmp;
- data += 2 * sizeof(uint16_t);
- hash += hash >> 11;
- }
-
- /* Handle end cases */
- switch (rem) {
- case 3:
- hash += get16bits(data);
- hash ^= hash << 16;
-
- // Treat the final character as signed. This ensures all platforms behave
- // consistently with the original x86 code.
- hash ^= static_cast<signed char>(data[sizeof(uint16_t)]) << 18;
- hash += hash >> 11;
- break;
- case 2:
- hash += get16bits(data);
- hash ^= hash << 11;
- hash += hash >> 17;
- break;
- case 1:
- hash += static_cast<signed char>(*data);
- hash ^= hash << 10;
- hash += hash >> 1;
- }
-
- /* Force "avalanching" of final 127 bits */
- hash ^= hash << 3;
- hash += hash >> 5;
- hash ^= hash << 4;
- hash += hash >> 17;
- hash ^= hash << 25;
- hash += hash >> 6;
-
- return hash;
-}
-
-} // namespace disk_cache
« no previous file with comments | « net/disk_cache/hash.h ('k') | net/disk_cache/storage_block-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698