Chromium Code Reviews| Index: Source/core/css/parser/CSSParserImpl.cpp |
| diff --git a/Source/core/css/parser/CSSParserImpl.cpp b/Source/core/css/parser/CSSParserImpl.cpp |
| index ee38ce43af26d0f74f7e6a94dea878ddf21447c4..dc4d0a930e904b6eff1f6fd9ccc81df4cb342154 100644 |
| --- a/Source/core/css/parser/CSSParserImpl.cpp |
| +++ b/Source/core/css/parser/CSSParserImpl.cpp |
| @@ -49,7 +49,7 @@ bool CSSParserImpl::parseValue(MutableStylePropertySet* declaration, CSSProperty |
| return declaration->addParsedProperties(parser.m_parsedProperties); |
| } |
| -static inline void filterProperties(bool important, const WillBeHeapVector<CSSProperty, 256>& input, WillBeHeapVector<CSSProperty, 256>& output, size_t& unusedEntries, BitArray<numCSSProperties>& seenProperties) |
| +static inline void filterProperties(bool important, const WillBeHeapVector<CSSProperty, 256>& input, WillBeHeapVector<CSSProperty, 256>& output, BitArray<numCSSProperties>& seenProperties) |
| { |
| // Add properties in reverse order so that highest priority definitions are reached first. Duplicate definitions can then be ignored when found. |
| for (size_t i = input.size(); i--; ) { |
| @@ -60,20 +60,21 @@ static inline void filterProperties(bool important, const WillBeHeapVector<CSSPr |
| if (seenProperties.get(propertyIDIndex)) |
| continue; |
| seenProperties.set(propertyIDIndex); |
| - output[--unusedEntries] = property; |
| + output.append(property); |
| } |
| + output.reverse(); |
| } |
| static PassRefPtrWillBeRawPtr<ImmutableStylePropertySet> createStylePropertySet(WillBeHeapVector<CSSProperty, 256>& parsedProperties, CSSParserMode mode) |
| { |
| BitArray<numCSSProperties> seenProperties; |
| - size_t unusedEntries = parsedProperties.size(); |
| - WillBeHeapVector<CSSProperty, 256> results(unusedEntries); |
| + WillBeHeapVector<CSSProperty, 256> results; |
| + results.reserveCapacity(parsedProperties.size()); |
|
Timothy Loh
2015/06/02 00:42:04
reserveInitialCapacity
sashab
2015/06/05 06:16:30
Done.
|
| - filterProperties(true, parsedProperties, results, unusedEntries, seenProperties); |
| - filterProperties(false, parsedProperties, results, unusedEntries, seenProperties); |
| + filterProperties(true, parsedProperties, results, seenProperties); |
| + filterProperties(false, parsedProperties, results, seenProperties); |
| - RefPtrWillBeRawPtr<ImmutableStylePropertySet> result = ImmutableStylePropertySet::create(results.data() + unusedEntries, results.size() - unusedEntries, mode); |
| + RefPtrWillBeRawPtr<ImmutableStylePropertySet> result = ImmutableStylePropertySet::create(results.data(), results.size(), mode); |
| parsedProperties.clear(); |
| return result.release(); |
| } |