diff options
Diffstat (limited to 'net/disk_cache/simple/simple_util.cc')
-rw-r--r-- | net/disk_cache/simple/simple_util.cc | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/net/disk_cache/simple/simple_util.cc b/net/disk_cache/simple/simple_util.cc index d823335b5..369412a2e 100644 --- a/net/disk_cache/simple/simple_util.cc +++ b/net/disk_cache/simple/simple_util.cc @@ -4,6 +4,8 @@ #include "net/disk_cache/simple/simple_util.h" +#include <string.h> + #include <limits> #include "base/check_op.h" @@ -49,13 +51,13 @@ bool GetEntryHashKeyFromHexString(base::StringPiece hash_key, } uint64_t GetEntryHashKey(const std::string& key) { - union { - unsigned char sha_hash[base::kSHA1Length]; - uint64_t key_hash; - } u; + unsigned char sha_hash[base::kSHA1Length]; + base::SHA1HashBytes(reinterpret_cast<const unsigned char*>(key.data()), - key.size(), u.sha_hash); - return u.key_hash; + key.size(), sha_hash); + uint64_t as_uint64; + memcpy(&as_uint64, sha_hash, sizeof(as_uint64)); + return as_uint64; } std::string GetFilenameFromEntryFileKeyAndFileIndex( |