]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/civetweb/src/third_party/duktape-1.5.2/src-separate/duk_util_hashbytes.c
import quincy beta 17.1.0
[ceph.git] / ceph / src / civetweb / src / third_party / duktape-1.5.2 / src-separate / duk_util_hashbytes.c
diff --git a/ceph/src/civetweb/src/third_party/duktape-1.5.2/src-separate/duk_util_hashbytes.c b/ceph/src/civetweb/src/third_party/duktape-1.5.2/src-separate/duk_util_hashbytes.c
deleted file mode 100644 (file)
index e6f71bf..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *  Hash function duk_util_hashbytes().
- *
- *  Currently, 32-bit MurmurHash2.
- *
- *  Don't rely on specific hash values; hash function may be endianness
- *  dependent, for instance.
- */
-
-#include "duk_internal.h"
-
-#if defined(DUK_USE_STRHASH_DENSE)
-/* 'magic' constants for Murmurhash2 */
-#define DUK__MAGIC_M  ((duk_uint32_t) 0x5bd1e995UL)
-#define DUK__MAGIC_R  24
-
-DUK_INTERNAL duk_uint32_t duk_util_hashbytes(const duk_uint8_t *data, duk_size_t len, duk_uint32_t seed) {
-       duk_uint32_t h = seed ^ ((duk_uint32_t) len);
-
-       while (len >= 4) {
-               /* Portability workaround is required for platforms without
-                * unaligned access.  The replacement code emulates little
-                * endian access even on big endian architectures, which is
-                * OK as long as it is consistent for a build.
-                */
-#ifdef DUK_USE_HASHBYTES_UNALIGNED_U32_ACCESS
-               duk_uint32_t k = *((const duk_uint32_t *) (const void *) data);
-#else
-               duk_uint32_t k = ((duk_uint32_t) data[0]) |
-                                (((duk_uint32_t) data[1]) << 8) |
-                                (((duk_uint32_t) data[2]) << 16) |
-                                (((duk_uint32_t) data[3]) << 24);
-#endif
-
-               k *= DUK__MAGIC_M;
-               k ^= k >> DUK__MAGIC_R;
-               k *= DUK__MAGIC_M;
-               h *= DUK__MAGIC_M;
-               h ^= k;
-               data += 4;
-               len -= 4;
-       }
-
-       switch (len) {
-       case 3: h ^= data[2] << 16;
-       case 2: h ^= data[1] << 8;
-       case 1: h ^= data[0];
-               h *= DUK__MAGIC_M;
-        }
-
-       h ^= h >> 13;
-       h *= DUK__MAGIC_M;
-       h ^= h >> 15;
-
-       return h;
-}
-#endif  /* DUK_USE_STRHASH_DENSE */