After r130344, OpaqueJSString::identifier() adds wrapped String to identifier table
authormsaboff@apple.com <msaboff@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 9 Oct 2012 14:46:53 +0000 (14:46 +0000)
committermsaboff@apple.com <msaboff@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 9 Oct 2012 14:46:53 +0000 (14:46 +0000)
https://bugs.webkit.org/show_bug.cgi?id=98693
REGRESSION (r130344): Install failed in Install Environment
<rdar://problem/12450118>

Reviewed by Filip Pizlo.

Use Identifier(LChar*, length) or Identifier(UChar*, length) constructors so that we don't
add the String instance in the OpaqueJSString to any identifier tables.

* API/OpaqueJSString.cpp:
(OpaqueJSString::identifier):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@130761 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/API/OpaqueJSString.cpp
Source/JavaScriptCore/ChangeLog

index 61d043b..5f457e8 100644 (file)
@@ -44,5 +44,8 @@ Identifier OpaqueJSString::identifier(JSGlobalData* globalData) const
     if (!this || !m_string.length())
         return Identifier(globalData, static_cast<const char*>(0));
 
-    return Identifier(globalData, m_string);
+    if (m_string.is8Bit())
+        return Identifier(globalData, m_string.characters8(), m_string.length());
+
+    return Identifier(globalData, m_string.characters16(), m_string.length());
 }
index 4631e46..e9396eb 100644 (file)
@@ -1,3 +1,18 @@
+2012-10-09  Michael Saboff  <msaboff@apple.com>
+
+        After r130344, OpaqueJSString::identifier() adds wrapped String to identifier table
+        https://bugs.webkit.org/show_bug.cgi?id=98693
+        REGRESSION (r130344): Install failed in Install Environment
+        <rdar://problem/12450118>
+
+        Reviewed by Filip Pizlo.
+
+        Use Identifier(LChar*, length) or Identifier(UChar*, length) constructors so that we don't
+        add the String instance in the OpaqueJSString to any identifier tables.
+
+        * API/OpaqueJSString.cpp:
+        (OpaqueJSString::identifier):
+
 2012-10-08  Mark Lam  <mark.lam@apple.com>
 
         Renamed RegisterFile to JSStack, and removed prototype of the