| // Copyright (c) 2011 The LevelDB Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. See the AUTHORS file for names of contributors. |
| uint32_t Hash(const char* data, size_t n, uint32_t seed) { |
| // Similar to murmur hash |
| const uint32_t m = 0xc6a4a793; |
| const char* limit = data + n; |
| uint32_t h = seed ^ (n * m); |
| // Pick up four bytes at a time |
| while (data + 4 <= limit) { |
| uint32_t w = DecodeFixed32(data); |
| // Pick up remaining bytes |