From 43a42f108af6bcbd91f2672731c3047c26213af1 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 22 Oct 2012 15:40:17 +0200 Subject: Imported WebKit commit 302e7806bff028bd1167a1ec7c86a1ee00ecfb49 (http://svn.webkit.org/repository/webkit/trunk@132067) New snapshot that fixes build without QtWidgets --- Source/JavaScriptCore/API/JSStringRef.cpp | 6 +++++- Source/JavaScriptCore/API/JSStringRefCF.cpp | 2 +- Source/JavaScriptCore/API/OpaqueJSString.h | 12 +++++++++++- 3 files changed, 17 insertions(+), 3 deletions(-) (limited to 'Source/JavaScriptCore/API') 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 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(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(buffer.get()), length).leakRef(); } else { - return OpaqueJSString::create(0, 0).leakRef(); + return OpaqueJSString::create(static_cast(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 { return adoptRef(new OpaqueJSString); } + static PassRefPtr create(const LChar* characters, unsigned length) + { + return adoptRef(new OpaqueJSString(characters, length)); + } + static PassRefPtr create(const UChar* characters, unsigned length) { return adoptRef(new OpaqueJSString(characters, length)); @@ -51,7 +56,7 @@ struct OpaqueJSString : public ThreadSafeRefCounted { 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); -- cgit v1.2.1