From 776b1f45487eb5f541f079239c209d1aa3c9e5cf Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Mon, 12 Jul 2021 17:30:40 +0100 Subject: 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. :^) --- Userland/Libraries/LibWeb/DOM/ParentNode.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'Userland/Libraries/LibWeb/DOM') 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 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 result; for_each_in_inclusive_subtree_of_type([&](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 ParentNode::query_selector(const StringView& selector_text) NonnullRefPtrVector 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 elements; for_each_in_inclusive_subtree_of_type([&](auto& element) { - if (SelectorEngine::matches(selector.value(), element)) { + if (SelectorEngine::matches(selector.release_nonnull(), element)) { elements.append(element); } return IterationDecision::Continue; -- cgit v1.2.3