Changeset 145500 in webkit
- Timestamp:
- Mar 12, 2013 1:53:41 AM (11 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r145491 r145500 1 2013-03-12 Csaba Osztrogonác <ossy@webkit.org> 2 3 REGRESSION(r145482): It broke 33 jsc tests and zillion layout tests on all platform 4 https://bugs.webkit.org/show_bug.cgi?id=112112 5 6 Reviewed by Oliver Hunt. 7 8 Rolling out https://trac.webkit.org/changeset/145482 to unbreak the bots. 9 10 * runtime/JSStringJoiner.cpp: 11 (JSC::JSStringJoiner::build): 12 * runtime/JSStringJoiner.h: 13 (JSStringJoiner): 14 (JSC::JSStringJoiner::JSStringJoiner): 15 (JSC::JSStringJoiner::append): 16 1 17 2013-03-12 Filip Pizlo <fpizlo@apple.com> 2 18 -
trunk/Source/JavaScriptCore/runtime/JSStringJoiner.cpp
r145482 r145500 103 103 return jsEmptyString(exec); 104 104 105 Checked<size_t, RecordOverflow>separatorLength = m_separator.length();105 size_t separatorLength = m_separator.length(); 106 106 // FIXME: add special cases of joinStrings() for (separatorLength == 0) and (separatorLength == 1). 107 107 ASSERT(m_strings.size() > 0); 108 Checked<size_t, RecordOverflow>totalSeparactorsLength = separatorLength * (m_strings.size() - 1);109 Checked<size_t, RecordOverflow> outputStringSize = totalSeparactorsLength + m_accumulatedStringsLength;108 size_t totalSeparactorsLength = separatorLength * (m_strings.size() - 1); 109 size_t outputStringSize = totalSeparactorsLength + m_cumulatedStringsLength; 110 110 111 size_t finalSize;112 if (outputStringSize.safeGet(finalSize))113 return throwOutOfMemoryError(exec);114 115 111 if (!outputStringSize) 116 112 return jsEmptyString(exec); … … 118 114 RefPtr<StringImpl> outputStringImpl; 119 115 if (m_is8Bits) 120 outputStringImpl = joinStrings<LChar>(m_strings, m_separator, finalSize);116 outputStringImpl = joinStrings<LChar>(m_strings, m_separator, outputStringSize); 121 117 else 122 outputStringImpl = joinStrings<UChar>(m_strings, m_separator, finalSize);118 outputStringImpl = joinStrings<UChar>(m_strings, m_separator, outputStringSize); 123 119 124 120 if (!outputStringImpl) -
trunk/Source/JavaScriptCore/runtime/JSStringJoiner.h
r145482 r145500 47 47 Vector<String> m_strings; 48 48 49 Checked<unsigned, RecordOverflow> m_accumulatedStringsLength;49 unsigned m_cumulatedStringsLength; 50 50 bool m_isValid; 51 51 bool m_is8Bits; … … 54 54 inline JSStringJoiner::JSStringJoiner(const String& separator, size_t stringCount) 55 55 : m_separator(separator) 56 , m_cumulatedStringsLength(0) 56 57 , m_isValid(true) 57 58 , m_is8Bits(m_separator.is8Bit()) … … 66 67 return; 67 68 68 m_strings. append(str);69 m_strings.uncheckedAppend(str); 69 70 if (!str.isNull()) { 70 m_ accumulatedStringsLength += str.length();71 m_cumulatedStringsLength += str.length(); 71 72 m_is8Bits = m_is8Bits && str.is8Bit(); 72 73 }
Note: See TracChangeset
for help on using the changeset viewer.