summaryrefslogtreecommitdiff
path: root/net/disk_cache/simple/simple_util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/disk_cache/simple/simple_util.cc')
-rw-r--r--net/disk_cache/simple/simple_util.cc14
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(