diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-06-01 10:36:58 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-06-01 10:36:58 +0200 |
commit | b1e9e47fa11f608ae16bc07f97a2acf95bf80272 (patch) | |
tree | c88c45e80c9c44506e7cdf9a3bb39ebf82a8cd5b /Source/JavaScriptCore/parser | |
parent | be01689f43cf6882cf670d33df49ead1f570c53a (diff) | |
download | qtwebkit-b1e9e47fa11f608ae16bc07f97a2acf95bf80272.tar.gz |
Imported WebKit commit 499c84c99aa98e9870fa7eaa57db476c6d160d46 (http://svn.webkit.org/repository/webkit/trunk@119200)
Weekly update :). Particularly relevant changes for Qt are the use of the WebCore image decoders and direct usage
of libpng/libjpeg if available in the system.
Diffstat (limited to 'Source/JavaScriptCore/parser')
-rw-r--r-- | Source/JavaScriptCore/parser/Nodes.h | 2 | ||||
-rw-r--r-- | Source/JavaScriptCore/parser/SourceCode.h | 7 | ||||
-rw-r--r-- | Source/JavaScriptCore/parser/SourceProvider.h | 10 |
3 files changed, 17 insertions, 2 deletions
diff --git a/Source/JavaScriptCore/parser/Nodes.h b/Source/JavaScriptCore/parser/Nodes.h index 26c829da6..5c90bb9fe 100644 --- a/Source/JavaScriptCore/parser/Nodes.h +++ b/Source/JavaScriptCore/parser/Nodes.h @@ -1399,7 +1399,7 @@ namespace JSC { const SourceCode& source() const { return m_source; } const UString& sourceURL() const { return m_source.provider()->url(); } - intptr_t sourceID() const { return m_source.provider()->asID(); } + intptr_t sourceID() const { return m_source.providerID(); } void setFeatures(CodeFeatures features) { m_features = features; } CodeFeatures features() { return m_features; } diff --git a/Source/JavaScriptCore/parser/SourceCode.h b/Source/JavaScriptCore/parser/SourceCode.h index a33ffea72..11a00337d 100644 --- a/Source/JavaScriptCore/parser/SourceCode.h +++ b/Source/JavaScriptCore/parser/SourceCode.h @@ -67,6 +67,13 @@ namespace JSC { return m_provider->getRange(m_startChar, m_endChar); } + intptr_t providerID() const + { + if (!m_provider) + return SourceProvider::nullID; + return m_provider->asID(); + } + bool isNull() const { return !m_provider; } SourceProvider* provider() const { return m_provider.get(); } int firstLine() const { return m_firstLine; } diff --git a/Source/JavaScriptCore/parser/SourceProvider.h b/Source/JavaScriptCore/parser/SourceProvider.h index 20be63cac..946792b2c 100644 --- a/Source/JavaScriptCore/parser/SourceProvider.h +++ b/Source/JavaScriptCore/parser/SourceProvider.h @@ -40,6 +40,8 @@ namespace JSC { class SourceProvider : public RefCounted<SourceProvider> { public: + static const intptr_t nullID = 1; + SourceProvider(const UString& url, const TextPosition& startPosition, SourceProviderCache* cache = 0) : m_url(url) , m_startPosition(startPosition) @@ -61,7 +63,13 @@ namespace JSC { const UString& url() { return m_url; } TextPosition startPosition() const { return m_startPosition; } - intptr_t asID() { return reinterpret_cast<intptr_t>(this); } + intptr_t asID() + { + ASSERT(this); + if (!this) // Be defensive in release mode. + return nullID; + return reinterpret_cast<intptr_t>(this); + } bool isValid() const { return m_validated; } void setValid() { m_validated = true; } |