Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (94335 => 94336)
--- trunk/Source/_javascript_Core/ChangeLog 2011-09-01 19:56:45 UTC (rev 94335)
+++ trunk/Source/_javascript_Core/ChangeLog 2011-09-01 20:04:34 UTC (rev 94336)
@@ -1,3 +1,40 @@
+2011-09-01 Michael Saboff <msab...@apple.com>
+
+ Remove simple usage of UString::characters() from _javascript_Core
+ https://bugs.webkit.org/show_bug.cgi?id=67340
+
+ In preparation to allowing StringImpl to be backed by 8 bit
+ characters when appropriate, we need to eliminate or change the
+ usage of StringImpl::characters(). Most of the changes below
+ change s->characters()[0] to s[0].
+
+ Reviewed by Geoffrey Garen.
+
+ * bytecompiler/BytecodeGenerator.cpp:
+ (JSC::keyForCharacterSwitch):
+ * bytecompiler/NodesCodegen.cpp:
+ (JSC::processClauseList):
+ * interpreter/Interpreter.cpp:
+ (JSC::Interpreter::privateExecute):
+ * jit/JITStubs.cpp:
+ (JSC::DEFINE_STUB_FUNCTION):
+ * runtime/Identifier.cpp:
+ (JSC::Identifier::addSlowCase):
+ * runtime/JSGlobalObjectFunctions.cpp:
+ (JSC::jsToNumber):
+ (JSC::parseFloat):
+ * runtime/JSString.cpp:
+ (JSC::JSString::substringFromRope):
+ * runtime/JSString.h:
+ (JSC::jsSingleCharacterSubstring):
+ (JSC::jsString):
+ (JSC::jsSubstring):
+ (JSC::jsOwnedString):
+ * runtime/RegExp.cpp:
+ (JSC::regExpFlags):
+ * wtf/text/StringBuilder.h:
+ (WTF::StringBuilder::operator[]):
+
2011-09-01 Ada Chan <adac...@apple.com>
Export fastMallocStatistics and Heap::objectTypeCounts for https://bugs.webkit.org/show_bug.cgi?id=67160.
Modified: trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp (94335 => 94336)
--- trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp 2011-09-01 19:56:45 UTC (rev 94335)
+++ trunk/Source/_javascript_Core/bytecompiler/BytecodeGenerator.cpp 2011-09-01 20:04:34 UTC (rev 94336)
@@ -2273,7 +2273,7 @@
StringImpl* clause = static_cast<StringNode*>(node)->value().impl();
ASSERT(clause->length() == 1);
- int32_t key = clause->characters()[0];
+ int32_t key = (*clause)[0];
ASSERT(key >= min);
ASSERT(key <= max);
return key - min;
Modified: trunk/Source/_javascript_Core/bytecompiler/NodesCodegen.cpp (94335 => 94336)
--- trunk/Source/_javascript_Core/bytecompiler/NodesCodegen.cpp 2011-09-01 19:56:45 UTC (rev 94335)
+++ trunk/Source/_javascript_Core/bytecompiler/NodesCodegen.cpp 2011-09-01 20:04:34 UTC (rev 94336)
@@ -1740,7 +1740,7 @@
}
const UString& value = static_cast<StringNode*>(clauseExpression)->value().ustring();
if (singleCharacterSwitch &= value.length() == 1) {
- int32_t intVal = value.impl()->characters()[0];
+ int32_t intVal = value[0];
if (intVal < min_num)
min_num = intVal;
if (intVal > max_num)
Modified: trunk/Source/_javascript_Core/interpreter/Interpreter.cpp (94335 => 94336)
--- trunk/Source/_javascript_Core/interpreter/Interpreter.cpp 2011-09-01 19:56:45 UTC (rev 94335)
+++ trunk/Source/_javascript_Core/interpreter/Interpreter.cpp 2011-09-01 20:04:34 UTC (rev 94336)
@@ -4075,7 +4075,7 @@
if (value->length() != 1)
vPC += defaultOffset;
else
- vPC += codeBlock->characterSwitchJumpTable(tableIndex).offsetForValue(value->characters()[0], defaultOffset);
+ vPC += codeBlock->characterSwitchJumpTable(tableIndex).offsetForValue((*value)[0], defaultOffset);
}
NEXT_INSTRUCTION();
}
Modified: trunk/Source/_javascript_Core/jit/JITStubs.cpp (94335 => 94336)
--- trunk/Source/_javascript_Core/jit/JITStubs.cpp 2011-09-01 19:56:45 UTC (rev 94335)
+++ trunk/Source/_javascript_Core/jit/JITStubs.cpp 2011-09-01 20:04:34 UTC (rev 94336)
@@ -3453,7 +3453,7 @@
if (scrutinee.isString()) {
StringImpl* value = asString(scrutinee)->value(callFrame).impl();
if (value->length() == 1)
- result = codeBlock->characterSwitchJumpTable(tableIndex).ctiForValue(value->characters()[0]).executableAddress();
+ result = codeBlock->characterSwitchJumpTable(tableIndex).ctiForValue((*value)[0]).executableAddress();
}
CHECK_FOR_EXCEPTION_AT_END();
Modified: trunk/Source/_javascript_Core/runtime/Identifier.cpp (94335 => 94336)
--- trunk/Source/_javascript_Core/runtime/Identifier.cpp 2011-09-01 19:56:45 UTC (rev 94335)
+++ trunk/Source/_javascript_Core/runtime/Identifier.cpp 2011-09-01 20:04:34 UTC (rev 94336)
@@ -232,7 +232,7 @@
ASSERT(r->length());
if (r->length() == 1) {
- UChar c = r->characters()[0];
+ UChar c = (*r)[0];
if (c <= maxSingleCharacterString)
r = globalData->smallStrings.singleCharacterStringRep(c);
if (r->isIdentifier())
Modified: trunk/Source/_javascript_Core/runtime/JSGlobalObjectFunctions.cpp (94335 => 94336)
--- trunk/Source/_javascript_Core/runtime/JSGlobalObjectFunctions.cpp 2011-09-01 19:56:45 UTC (rev 94335)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalObjectFunctions.cpp 2011-09-01 20:04:34 UTC (rev 94336)
@@ -367,7 +367,7 @@
unsigned size = s.length();
if (size == 1) {
- UChar c = s.characters()[0];
+ UChar c = s[0];
if (isASCIIDigit(c))
return c - '0';
if (isStrWhiteSpace(c))
@@ -410,7 +410,7 @@
unsigned size = s.length();
if (size == 1) {
- UChar c = s.characters()[0];
+ UChar c = s[0];
if (isASCIIDigit(c))
return c - '0';
return std::numeric_limits<double>::quiet_NaN();
Modified: trunk/Source/_javascript_Core/runtime/JSString.cpp (94335 => 94336)
--- trunk/Source/_javascript_Core/runtime/JSString.cpp 2011-09-01 19:56:45 UTC (rev 94335)
+++ trunk/Source/_javascript_Core/runtime/JSString.cpp 2011-09-01 20:04:34 UTC (rev 94336)
@@ -194,7 +194,7 @@
if (substringLength == 1) {
ASSERT(substringFiberCount == 1);
- UChar c = substringFibers[0].characters()[0];
+ UChar c = substringFibers[0][0];
if (c <= maxSingleCharacterString)
return globalData->smallStrings.singleCharacterString(globalData, c);
}
Modified: trunk/Source/_javascript_Core/runtime/JSString.h (94335 => 94336)
--- trunk/Source/_javascript_Core/runtime/JSString.h 2011-09-01 19:56:45 UTC (rev 94335)
+++ trunk/Source/_javascript_Core/runtime/JSString.h 2011-09-01 20:04:34 UTC (rev 94336)
@@ -560,7 +560,7 @@
{
JSGlobalData* globalData = &exec->globalData();
ASSERT(offset < static_cast<unsigned>(s.length()));
- UChar c = s.characters()[offset];
+ UChar c = s[offset];
if (c <= maxSingleCharacterString)
return globalData->smallStrings.singleCharacterString(globalData, c);
return fixupVPtr(globalData, JSString::create(*globalData, UString(StringImpl::create(s.impl(), offset, 1))));
@@ -595,7 +595,7 @@
if (!size)
return globalData->smallStrings.emptyString(globalData);
if (size == 1) {
- UChar c = s.characters()[0];
+ UChar c = s[0];
if (c <= maxSingleCharacterString)
return globalData->smallStrings.singleCharacterString(globalData, c);
}
@@ -623,7 +623,7 @@
if (!length)
return globalData->smallStrings.emptyString(globalData);
if (length == 1) {
- UChar c = s.characters()[offset];
+ UChar c = s[offset];
if (c <= maxSingleCharacterString)
return globalData->smallStrings.singleCharacterString(globalData, c);
}
@@ -636,7 +636,7 @@
if (!size)
return globalData->smallStrings.emptyString(globalData);
if (size == 1) {
- UChar c = s.characters()[0];
+ UChar c = s[0];
if (c <= maxSingleCharacterString)
return globalData->smallStrings.singleCharacterString(globalData, c);
}
Modified: trunk/Source/_javascript_Core/runtime/RegExp.cpp (94335 => 94336)
--- trunk/Source/_javascript_Core/runtime/RegExp.cpp 2011-09-01 19:56:45 UTC (rev 94335)
+++ trunk/Source/_javascript_Core/runtime/RegExp.cpp 2011-09-01 20:04:34 UTC (rev 94336)
@@ -42,7 +42,7 @@
RegExpFlags flags = NoFlags;
for (unsigned i = 0; i < string.length(); ++i) {
- switch (string.characters()[i]) {
+ switch (string[i]) {
case 'g':
if (flags & FlagGlobal)
return InvalidFlags;
Modified: trunk/Source/_javascript_Core/wtf/text/StringBuilder.h (94335 => 94336)
--- trunk/Source/_javascript_Core/wtf/text/StringBuilder.h 2011-09-01 19:56:45 UTC (rev 94335)
+++ trunk/Source/_javascript_Core/wtf/text/StringBuilder.h 2011-09-01 20:04:34 UTC (rev 94336)
@@ -111,7 +111,7 @@
if (!m_string.isNull())
return m_string[i];
ASSERT(m_buffer);
- return m_buffer->characters()[i];
+ return (*m_buffer)[i];
}
void clear()