Changeset 162843 in webkit
- Timestamp:
- Jan 27, 2014, 9:12:46 AM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r162842 r162843 1 2014-01-27 Antti Koivisto <antti@apple.com> 2 3 REGRESSION(r133214): Don't invalidate style when adding classes that don't match rules 4 https://bugs.webkit.org/show_bug.cgi?id=126177 5 6 Reviewed by Anders Carlsson. 7 8 Spotted by Elliott Sprehn in Chromium. 9 10 * dom/Element.cpp: 11 (WebCore::checkSelectorForClassChange): 12 13 Remove unnecessary templating. 14 15 (WebCore::Element::classAttributeChanged): 16 17 Fix logic error with 'continue'. 18 1 19 2014-01-27 Brendan Long <b.long@cablelabs.com> 2 20 -
trunk/Source/WebCore/dom/Element.cpp
r162821 r162843 1154 1154 } 1155 1155 1156 template<typename Checker> 1157 static bool checkSelectorForClassChange(const SpaceSplitString& changedClasses, const Checker& checker) 1156 static bool checkSelectorForClassChange(const SpaceSplitString& changedClasses, const StyleResolver& styleResolver) 1158 1157 { 1159 1158 unsigned changedSize = changedClasses.size(); 1160 1159 for (unsigned i = 0; i < changedSize; ++i) { 1161 if ( checker.hasSelectorForClass(changedClasses[i]))1160 if (styleResolver.hasSelectorForClass(changedClasses[i])) 1162 1161 return true; 1163 1162 } … … 1165 1164 } 1166 1165 1167 template<typename Checker> 1168 static bool checkSelectorForClassChange(const SpaceSplitString& oldClasses, const SpaceSplitString& newClasses, const Checker& checker) 1166 static bool checkSelectorForClassChange(const SpaceSplitString& oldClasses, const SpaceSplitString& newClasses, const StyleResolver& styleResolver) 1169 1167 { 1170 1168 unsigned oldSize = oldClasses.size(); 1171 1169 if (!oldSize) 1172 return checkSelectorForClassChange(newClasses, checker);1170 return checkSelectorForClassChange(newClasses, styleResolver); 1173 1171 BitVector remainingClassBits; 1174 1172 remainingClassBits.ensureSize(oldSize); … … 1176 1174 unsigned newSize = newClasses.size(); 1177 1175 for (unsigned i = 0; i < newSize; ++i) { 1176 bool foundFromBoth = false; 1178 1177 for (unsigned j = 0; j < oldSize; ++j) { 1179 1178 if (newClasses[i] == oldClasses[j]) { 1180 1179 remainingClassBits.quickSet(j); 1181 continue;1180 foundFromBoth = true; 1182 1181 } 1183 1182 } 1184 if (checker.hasSelectorForClass(newClasses[i])) 1183 if (foundFromBoth) 1184 continue; 1185 if (styleResolver.hasSelectorForClass(newClasses[i])) 1185 1186 return true; 1186 1187 } … … 1189 1190 if (remainingClassBits.quickGet(i)) 1190 1191 continue; 1191 if ( checker.hasSelectorForClass(oldClasses[i]))1192 if (styleResolver.hasSelectorForClass(oldClasses[i])) 1192 1193 return true; 1193 1194 }
Note:
See TracChangeset
for help on using the changeset viewer.