diff options
author | Konstantin Tokarev <annulen@yandex.ru> | 2016-08-25 19:20:41 +0300 |
---|---|---|
committer | Konstantin Tokarev <annulen@yandex.ru> | 2017-02-02 12:30:55 +0000 |
commit | 6882a04fb36642862b11efe514251d32070c3d65 (patch) | |
tree | b7959826000b061fd5ccc7512035c7478742f7b0 /Source/JavaScriptCore/profiler/CallIdentifier.h | |
parent | ab6df191029eeeb0b0f16f127d553265659f739e (diff) | |
download | qtwebkit-6882a04fb36642862b11efe514251d32070c3d65.tar.gz |
Imported QtWebKit TP3 (git b57bc6801f1876c3220d5a4bfea33d620d477443)
Change-Id: I3b1d8a2808782c9f34d50240000e20cb38d3680f
Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
Diffstat (limited to 'Source/JavaScriptCore/profiler/CallIdentifier.h')
-rw-r--r-- | Source/JavaScriptCore/profiler/CallIdentifier.h | 43 |
1 files changed, 27 insertions, 16 deletions
diff --git a/Source/JavaScriptCore/profiler/CallIdentifier.h b/Source/JavaScriptCore/profiler/CallIdentifier.h index bf9f904b0..691fc6250 100644 --- a/Source/JavaScriptCore/profiler/CallIdentifier.h +++ b/Source/JavaScriptCore/profiler/CallIdentifier.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008 Apple Inc. All Rights Reserved. + * Copyright (C) 2008, 2014 Apple Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -36,32 +36,37 @@ namespace JSC { struct CallIdentifier { WTF_MAKE_FAST_ALLOCATED; public: - String m_name; - String m_url; - unsigned m_lineNumber; - CallIdentifier() : m_lineNumber(0) + , m_columnNumber(0) { } - CallIdentifier(const String& name, const String& url, int lineNumber) - : m_name(name) + CallIdentifier(const String& functionName, const String& url, unsigned lineNumber, unsigned columnNumber) + : m_functionName(functionName) , m_url(!url.isNull() ? url : "") , m_lineNumber(lineNumber) + , m_columnNumber(columnNumber) { } - 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); } + const String& functionName() const { return m_functionName; } + + const String& url() const { return m_url; } + unsigned lineNumber() const { return m_lineNumber; } + unsigned columnNumber() const { return m_columnNumber; } + + inline bool operator==(const CallIdentifier& other) const { return other.m_lineNumber == m_lineNumber && other.m_columnNumber == m_columnNumber && other.m_functionName == m_functionName && other.m_url == m_url; } + inline bool operator!=(const CallIdentifier& other) const { return !(*this == other); } struct Hash { static unsigned hash(const CallIdentifier& key) { - unsigned hashCodes[3] = { - key.m_name.impl()->hash(), + unsigned hashCodes[4] = { + key.m_functionName.impl()->hash(), key.m_url.impl()->hash(), - key.m_lineNumber + key.m_lineNumber, + key.m_columnNumber }; return StringHasher::hashMemory<sizeof(hashCodes)>(hashCodes); } @@ -74,8 +79,14 @@ namespace JSC { #ifndef NDEBUG operator const char*() const { return c_str(); } - const char* c_str() const { return m_name.utf8().data(); } + const char* c_str() const { return m_functionName.utf8().data(); } #endif + + private: + String m_functionName; + String m_url; + unsigned m_lineNumber; + unsigned m_columnNumber; }; } // namespace JSC @@ -87,15 +98,15 @@ namespace WTF { template<> struct HashTraits<JSC::CallIdentifier> : GenericHashTraits<JSC::CallIdentifier> { static void constructDeletedValue(JSC::CallIdentifier& slot) { - new (NotNull, &slot) JSC::CallIdentifier(String(), String(), std::numeric_limits<unsigned>::max()); + new (NotNull, &slot) JSC::CallIdentifier(String(), String(), std::numeric_limits<unsigned>::max(), std::numeric_limits<unsigned>::max()); } + static bool isDeletedValue(const JSC::CallIdentifier& value) { - return value.m_name.isNull() && value.m_url.isNull() && value.m_lineNumber == std::numeric_limits<unsigned>::max(); + return value.functionName().isNull() && value.url().isNull() && value.lineNumber() == std::numeric_limits<unsigned>::max() && value.columnNumber() == std::numeric_limits<unsigned>::max(); } }; } // namespace WTF #endif // CallIdentifier_h - |