Переглянути джерело

LibWeb: Use split_view() in attribute selector matching

Using split() creates a new String object for each of the split tokens.
Use split_view() instead to avoid these unnecessary heap allocations.
Andreas Kling 4 роки тому
батько
коміт
d78a007b5d
1 змінених файлів з 2 додано та 2 видалено
  1. 2 2
      Userland/Libraries/LibWeb/CSS/SelectorEngine.cpp

+ 2 - 2
Userland/Libraries/LibWeb/CSS/SelectorEngine.cpp

@@ -35,13 +35,13 @@ static bool matches_attribute(CSS::Selector::SimpleSelector::Attribute const& at
         return element.attribute(attribute.name) == attribute.value;
         break;
     case CSS::Selector::SimpleSelector::Attribute::MatchType::ContainsWord:
-        return element.attribute(attribute.name).split(' ').contains_slow(attribute.value);
+        return element.attribute(attribute.name).split_view(' ').contains_slow(attribute.value);
         break;
     case CSS::Selector::SimpleSelector::Attribute::MatchType::ContainsString:
         return element.attribute(attribute.name).contains(attribute.value);
         break;
     case CSS::Selector::SimpleSelector::Attribute::MatchType::StartsWithSegment:
-        return element.attribute(attribute.name).split('-').first() == attribute.value;
+        return element.attribute(attribute.name).split_view('-').first() == attribute.value;
         break;
     case CSS::Selector::SimpleSelector::Attribute::MatchType::StartsWithString:
         return element.attribute(attribute.name).starts_with(attribute.value);