diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2012-10-22 15:40:17 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2012-10-22 15:40:17 +0200 |
commit | 43a42f108af6bcbd91f2672731c3047c26213af1 (patch) | |
tree | 7fa092e5f5d873c72f2486a70e26be26f7a38bec /Source/JavaScriptCore/API | |
parent | d9cf437c840c6eb7417bdd97e6c40979255d3158 (diff) | |
download | qtwebkit-43a42f108af6bcbd91f2672731c3047c26213af1.tar.gz |
Imported WebKit commit 302e7806bff028bd1167a1ec7c86a1ee00ecfb49 (http://svn.webkit.org/repository/webkit/trunk@132067)
New snapshot that fixes build without QtWidgets
Diffstat (limited to 'Source/JavaScriptCore/API')
-rw-r--r-- | Source/JavaScriptCore/API/JSStringRef.cpp | 6 | ||||
-rw-r--r-- | Source/JavaScriptCore/API/JSStringRefCF.cpp | 2 | ||||
-rw-r--r-- | Source/JavaScriptCore/API/OpaqueJSString.h | 12 |
3 files changed, 17 insertions, 3 deletions
diff --git a/Source/JavaScriptCore/API/JSStringRef.cpp b/Source/JavaScriptCore/API/JSStringRef.cpp index ea31da66b..da1a3057a 100644 --- a/Source/JavaScriptCore/API/JSStringRef.cpp +++ b/Source/JavaScriptCore/API/JSStringRef.cpp @@ -46,8 +46,12 @@ JSStringRef JSStringCreateWithUTF8CString(const char* string) size_t length = strlen(string); Vector<UChar, 1024> buffer(length); UChar* p = buffer.data(); - if (conversionOK == convertUTF8ToUTF16(&string, string + length, &p, p + length)) + bool sourceIsAllASCII; + if (conversionOK == convertUTF8ToUTF16(&string, string + length, &p, p + length, &sourceIsAllASCII)) { + if (sourceIsAllASCII) + return OpaqueJSString::create(reinterpret_cast<const LChar*>(string), length).leakRef(); return OpaqueJSString::create(buffer.data(), p - buffer.data()).leakRef(); + } } // Null string. diff --git a/Source/JavaScriptCore/API/JSStringRefCF.cpp b/Source/JavaScriptCore/API/JSStringRefCF.cpp index e87fd838d..69cf3f8c4 100644 --- a/Source/JavaScriptCore/API/JSStringRefCF.cpp +++ b/Source/JavaScriptCore/API/JSStringRefCF.cpp @@ -46,7 +46,7 @@ JSStringRef JSStringCreateWithCFString(CFStringRef string) COMPILE_ASSERT(sizeof(UniChar) == sizeof(UChar), unichar_and_uchar_must_be_same_size); return OpaqueJSString::create(reinterpret_cast<UChar*>(buffer.get()), length).leakRef(); } else { - return OpaqueJSString::create(0, 0).leakRef(); + return OpaqueJSString::create(static_cast<const LChar*>(0), 0).leakRef(); } } diff --git a/Source/JavaScriptCore/API/OpaqueJSString.h b/Source/JavaScriptCore/API/OpaqueJSString.h index 36680388d..0464e8813 100644 --- a/Source/JavaScriptCore/API/OpaqueJSString.h +++ b/Source/JavaScriptCore/API/OpaqueJSString.h @@ -41,6 +41,11 @@ struct OpaqueJSString : public ThreadSafeRefCounted<OpaqueJSString> { return adoptRef(new OpaqueJSString); } + static PassRefPtr<OpaqueJSString> create(const LChar* characters, unsigned length) + { + return adoptRef(new OpaqueJSString(characters, length)); + } + static PassRefPtr<OpaqueJSString> create(const UChar* characters, unsigned length) { return adoptRef(new OpaqueJSString(characters, length)); @@ -51,7 +56,7 @@ struct OpaqueJSString : public ThreadSafeRefCounted<OpaqueJSString> { const UChar* characters() { return !!this ? m_string.characters() : 0; } unsigned length() { return !!this ? m_string.length() : 0; } - String string() const; + JS_EXPORT_PRIVATE String string() const; JSC::Identifier identifier(JSC::JSGlobalData*) const; private: @@ -70,6 +75,11 @@ private: m_string = String(string.characters16(), string.length()); } + OpaqueJSString(const LChar* characters, unsigned length) + { + m_string = String(characters, length); + } + OpaqueJSString(const UChar* characters, unsigned length) { m_string = String(characters, length); |