diff options
author | Feng Qian <fqian@google.com> | 2009-06-17 12:12:20 -0700 |
---|---|---|
committer | Feng Qian <fqian@google.com> | 2009-06-17 12:12:20 -0700 |
commit | 5f1ab04193ad0130ca8204aadaceae083aca9881 (patch) | |
tree | 5a92cd389e2cfe7fb67197ce14b38469462379f8 /JavaScriptCore/profiler/CallIdentifier.h | |
parent | 194315e5a908cc8ed67d597010544803eef1ac59 (diff) | |
download | external_webkit-5f1ab04193ad0130ca8204aadaceae083aca9881.zip external_webkit-5f1ab04193ad0130ca8204aadaceae083aca9881.tar.gz external_webkit-5f1ab04193ad0130ca8204aadaceae083aca9881.tar.bz2 |
Get WebKit r44544.
Diffstat (limited to 'JavaScriptCore/profiler/CallIdentifier.h')
-rw-r--r-- | JavaScriptCore/profiler/CallIdentifier.h | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/JavaScriptCore/profiler/CallIdentifier.h b/JavaScriptCore/profiler/CallIdentifier.h index 6ceef13..c2c25d5 100644 --- a/JavaScriptCore/profiler/CallIdentifier.h +++ b/JavaScriptCore/profiler/CallIdentifier.h @@ -51,32 +51,34 @@ namespace JSC { inline bool operator==(const CallIdentifier& ci) const { return ci.m_lineNumber == m_lineNumber && ci.m_name == m_name && ci.m_url == m_url; } inline bool operator!=(const CallIdentifier& ci) const { return !(*this == ci); } + struct Hash { + static unsigned hash(const CallIdentifier& key) + { + unsigned hashCodes[3] = { + key.m_name.rep()->hash(), + key.m_url.rep()->hash(), + key.m_lineNumber + }; + return UString::Rep::computeHash(reinterpret_cast<char*>(hashCodes), sizeof(hashCodes)); + } + + static bool equal(const CallIdentifier& a, const CallIdentifier& b) { return a == b; } + static const bool safeToCompareToEmptyOrDeleted = true; + }; + + unsigned hash() const { return Hash::hash(*this); } + #ifndef NDEBUG operator const char*() const { return c_str(); } const char* c_str() const { return m_name.UTF8String().c_str(); } #endif }; - struct CallIdentifierHash { - static unsigned hash(const CallIdentifier& key) - { - unsigned hashCodes[3] = { - key.m_name.rep()->hash(), - key.m_url.rep()->hash(), - key.m_lineNumber - }; - return UString::Rep::computeHash(reinterpret_cast<char*>(hashCodes), sizeof(hashCodes)); - } - - static bool equal(const CallIdentifier& a, const CallIdentifier& b) { return a == b; } - static const bool safeToCompareToEmptyOrDeleted = true; - }; - } // namespace JSC namespace WTF { - template<> struct DefaultHash<JSC::CallIdentifier> { typedef JSC::CallIdentifierHash Hash; }; + template<> struct DefaultHash<JSC::CallIdentifier> { typedef JSC::CallIdentifier::Hash Hash; }; template<> struct HashTraits<JSC::CallIdentifier> : GenericHashTraits<JSC::CallIdentifier> { static void constructDeletedValue(JSC::CallIdentifier& slot) |