summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibWeb/DOM
diff options
context:
space:
mode:
authorSam Atkins <atkinssj@gmail.com>2021-07-12 17:30:40 +0100
committerAndreas Kling <kling@serenityos.org>2021-07-14 13:31:00 +0200
commit776b1f45487eb5f541f079239c209d1aa3c9e5cf (patch)
tree8cae90ffe6fc04c9f62977c5f1eee9676bd1c487 /Userland/Libraries/LibWeb/DOM
parent8cae79cc8de78c510f25a4f86ac4da00f5640590 (diff)
downloadserenity-776b1f45487eb5f541f079239c209d1aa3c9e5cf.zip
LibWeb: Make CSS::Selector reference counted
The end goal is to make the PseudoClass::not_selector be a Selector instead of a String that is repeatedly re-parsed. But since Selector contains a Vector of ComplexSelectors, which each have a Vector of SimpleSelectors, it's probably a good idea to not be passing them around by value anyway. :^)
Diffstat (limited to 'Userland/Libraries/LibWeb/DOM')
-rw-r--r--Userland/Libraries/LibWeb/DOM/ParentNode.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/Userland/Libraries/LibWeb/DOM/ParentNode.cpp b/Userland/Libraries/LibWeb/DOM/ParentNode.cpp
index 904a1f4945..447954e6b2 100644
--- a/Userland/Libraries/LibWeb/DOM/ParentNode.cpp
+++ b/Userland/Libraries/LibWeb/DOM/ParentNode.cpp
@@ -14,14 +14,14 @@ namespace Web::DOM {
RefPtr<Element> ParentNode::query_selector(const StringView& selector_text)
{
auto selector = parse_selector(CSS::DeprecatedParsingContext(*this), selector_text);
- if (!selector.has_value())
+ if (!selector)
return {};
- dump_selector(selector.value());
+ dump_selector(selector.release_nonnull());
RefPtr<Element> result;
for_each_in_inclusive_subtree_of_type<Element>([&](auto& element) {
- if (SelectorEngine::matches(selector.value(), element)) {
+ if (SelectorEngine::matches(selector.release_nonnull(), element)) {
result = element;
return IterationDecision::Break;
}
@@ -34,14 +34,14 @@ RefPtr<Element> ParentNode::query_selector(const StringView& selector_text)
NonnullRefPtrVector<Element> ParentNode::query_selector_all(const StringView& selector_text)
{
auto selector = parse_selector(CSS::DeprecatedParsingContext(*this), selector_text);
- if (!selector.has_value())
+ if (!selector)
return {};
- dump_selector(selector.value());
+ dump_selector(selector.release_nonnull());
NonnullRefPtrVector<Element> elements;
for_each_in_inclusive_subtree_of_type<Element>([&](auto& element) {
- if (SelectorEngine::matches(selector.value(), element)) {
+ if (SelectorEngine::matches(selector.release_nonnull(), element)) {
elements.append(element);
}
return IterationDecision::Continue;