Ignore:
Timestamp:
Oct 3, 2012, 4:40:28 PM (13 years ago)
Author:
[email protected]
Message:

OpaqueJSString doesn't optimally handle 8 bit strings
https://bugs.webkit.org/show_bug.cgi?id=98300

Reviewed by Geoffrey Garen.

Change OpaqueJSString to store and manage a String instead of a UChar buffer.
The member string is a copy of any string used during creation.

  • API/OpaqueJSString.cpp:

(OpaqueJSString::create):
(OpaqueJSString::identifier):

  • API/OpaqueJSString.h:

(OpaqueJSString::characters):
(OpaqueJSString::length):
(OpaqueJSString::string):
(OpaqueJSString::OpaqueJSString):
(OpaqueJSString):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/API/OpaqueJSString.cpp

    r127958 r130344  
    3636{
    3737    if (!string.isNull())
    38         return adoptRef(new OpaqueJSString(string.characters(), string.length()));
    39     return 0;
    40 }
    41 
    42 String OpaqueJSString::string() const
    43 {
    44     if (this && m_characters)
    45         return String(m_characters, m_length);
    46     return String();
     38        return adoptRef(new OpaqueJSString(string));
     39    return adoptRef(new OpaqueJSString());
    4740}
    4841
    4942Identifier OpaqueJSString::identifier(JSGlobalData* globalData) const
    5043{
    51     if (!this || !m_characters)
     44    if (!this || !m_string.length())
    5245        return Identifier(globalData, static_cast<const char*>(0));
    5346
    54     return Identifier(globalData, m_characters, m_length);
     47    return Identifier(globalData, m_string);
    5548}
Note: See TracChangeset for help on using the changeset viewer.