summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/API/OpaqueJSString.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/API/OpaqueJSString.h')
-rw-r--r--Source/JavaScriptCore/API/OpaqueJSString.h23
1 files changed, 12 insertions, 11 deletions
diff --git a/Source/JavaScriptCore/API/OpaqueJSString.h b/Source/JavaScriptCore/API/OpaqueJSString.h
index 36680388d..35543cdd6 100644
--- a/Source/JavaScriptCore/API/OpaqueJSString.h
+++ b/Source/JavaScriptCore/API/OpaqueJSString.h
@@ -48,8 +48,8 @@ struct OpaqueJSString : public ThreadSafeRefCounted<OpaqueJSString> {
JS_EXPORT_PRIVATE static PassRefPtr<OpaqueJSString> create(const String&);
- const UChar* characters() { return !!this ? m_string.characters() : 0; }
- unsigned length() { return !!this ? m_string.length() : 0; }
+ UChar* characters() { return this ? m_characters : 0; }
+ unsigned length() { return this ? m_length : 0; }
String string() const;
JSC::Identifier identifier(JSC::JSGlobalData*) const;
@@ -58,24 +58,25 @@ private:
friend class WTF::ThreadSafeRefCounted<OpaqueJSString>;
OpaqueJSString()
+ : m_characters(0)
+ , m_length(0)
{
}
- OpaqueJSString(const String& string)
+ OpaqueJSString(const UChar* characters, unsigned length)
+ : m_length(length)
{
- // Make a copy of the source string.
- if (string.is8Bit())
- m_string = String(string.characters8(), string.length());
- else
- m_string = String(string.characters16(), string.length());
+ m_characters = new UChar[length];
+ memcpy(m_characters, characters, length * sizeof(UChar));
}
- OpaqueJSString(const UChar* characters, unsigned length)
+ ~OpaqueJSString()
{
- m_string = String(characters, length);
+ delete[] m_characters;
}
- String m_string;
+ UChar* m_characters;
+ unsigned m_length;
};
#endif