summaryrefslogtreecommitdiffstats
path: root/WebCore/dom/QualifiedName.h
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/dom/QualifiedName.h')
-rw-r--r--WebCore/dom/QualifiedName.h42
1 files changed, 7 insertions, 35 deletions
diff --git a/WebCore/dom/QualifiedName.h b/WebCore/dom/QualifiedName.h
index ee90408..2da8f0c 100644
--- a/WebCore/dom/QualifiedName.h
+++ b/WebCore/dom/QualifiedName.h
@@ -112,52 +112,24 @@ inline bool operator!=(const QualifiedName& q, const AtomicString& a) { return a
inline unsigned hashComponents(const QualifiedNameComponents& buf)
{
- ASSERT(sizeof(QualifiedNameComponents) % (sizeof(uint16_t) * 2) == 0);
-
- unsigned l = sizeof(QualifiedNameComponents) / (sizeof(uint16_t) * 2);
- const uint16_t* s = reinterpret_cast<const uint16_t*>(&buf);
- uint32_t hash = WTF::stringHashingStartValue;
-
- // Main loop
- for (; l > 0; l--) {
- hash += s[0];
- uint32_t tmp = (s[1] << 11) ^ hash;
- hash = (hash << 16) ^ tmp;
- s += 2;
- hash += hash >> 11;
- }
-
- // Force "avalanching" of final 127 bits
- hash ^= hash << 3;
- hash += hash >> 5;
- hash ^= hash << 2;
- hash += hash >> 15;
- hash ^= hash << 10;
-
- // this avoids ever returning a hash code of 0, since that is used to
- // signal "hash not computed yet", using a value that is likely to be
- // effectively the same as 0 when the low bits are masked
- if (hash == 0)
- hash = 0x80000000;
-
- return hash;
+ return WTF::StringHasher::createBlobHash<sizeof(QualifiedNameComponents)>(&buf);
}
-
+
struct QualifiedNameHash {
static unsigned hash(const QualifiedName& name) { return hash(name.impl()); }
-
+
static unsigned hash(const QualifiedName::QualifiedNameImpl* name)
- {
+ {
QualifiedNameComponents c = { name->m_prefix.impl(), name->m_localName.impl(), name->m_namespace.impl() };
return hashComponents(c);
}
-
+
static bool equal(const QualifiedName& a, const QualifiedName& b) { return a == b; }
static bool equal(const QualifiedName::QualifiedNameImpl* a, const QualifiedName::QualifiedNameImpl* b) { return a == b; }
-
+
static const bool safeToCompareToEmptyOrDeleted = false;
};
-
+
}
namespace WTF {