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

Unified Diff: base/hash.h

Issue 181643004: Moved SuperFastHash function from base/hash.cc to base/third_party. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Respond to jln's comments. Created 6 years, 10 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 | « base/base.gypi ('k') | base/hash.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/hash.h
diff --git a/base/hash.h b/base/hash.h
index cf8ea3a26e49475a9187d7005cc17b0f470609f6..366165280739e9cf970c441a78e4403b0f21f190 100644
--- a/base/hash.h
+++ b/base/hash.h
@@ -5,25 +5,33 @@
#ifndef BASE_HASH_H_
#define BASE_HASH_H_
+#include <limits>
#include <string>
#include "base/base_export.h"
#include "base/basictypes.h"
+#include "base/logging.h"
namespace base {
-// From http://www.azillionmonkeys.com/qed/hash.html
-// This is the hash used on WebCore/platform/stringhash
-BASE_EXPORT uint32 SuperFastHash(const char * data, int len);
+// WARNING: This hash function should not be used for any cryptographic purpose.
+BASE_EXPORT uint32 SuperFastHash(const char* data, int len);
+// Computes the hash of a string |key| of a given |length|. |key| does not need
+// to be null-terminated, and may contain null bytes.
+// WARNING: This hash function should not be used for any cryptographic purpose.
inline uint32 Hash(const char* key, size_t length) {
+ if (length > std::numeric_limits<int>::max()) {
+ NOTREACHED();
+ return 0;
+ }
return SuperFastHash(key, static_cast<int>(length));
}
+// Computes the hash of a string |key|.
+// WARNING: This hash function should not be used for any cryptographic purpose.
inline uint32 Hash(const std::string& key) {
- if (key.empty())
- return 0;
- return SuperFastHash(key.data(), static_cast<int>(key.size()));
+ return Hash(key.data(), key.size());
Matt Giuca 2014/02/27 05:25:29 I fixed the static_cast here too (by calling throu
}
} // namespace base
« no previous file with comments | « base/base.gypi ('k') | base/hash.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698