1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 03:27:45 +00:00

LibWeb: Ensure the number of pseudo elements stays up-to-date

The ::placeholder pseudo element was added in commit 1fbad9c, but the
total number of pseudo elements was not updated. Instead of this manual
bookkeeping, add a dummy value at the end of the enumeration for the
count.
This commit is contained in:
Timothy Flynn 2022-11-30 18:27:26 -05:00 committed by Tim Flynn
parent c21e9a415d
commit fddbc2e378
3 changed files with 9 additions and 2 deletions

View file

@ -29,8 +29,10 @@ public:
ProgressValue, ProgressValue,
ProgressBar, ProgressBar,
Placeholder, Placeholder,
// Keep this last.
PseudoElementCount,
}; };
static auto constexpr PseudoElementCount = to_underlying(PseudoElement::ProgressBar) + 1;
struct SimpleSelector { struct SimpleSelector {
enum class Type { enum class Type {
@ -227,6 +229,8 @@ constexpr StringView pseudo_element_name(Selector::PseudoElement pseudo_element)
return "-webkit-progress-value"sv; return "-webkit-progress-value"sv;
case Selector::PseudoElement::Placeholder: case Selector::PseudoElement::Placeholder:
return "placeholder"sv; return "placeholder"sv;
case Selector::PseudoElement::PseudoElementCount:
break;
} }
VERIFY_NOT_REACHED(); VERIFY_NOT_REACHED();
} }

View file

@ -206,7 +206,7 @@ private:
Vector<FlyString> m_classes; Vector<FlyString> m_classes;
Array<JS::GCPtr<Layout::Node>, CSS::Selector::PseudoElementCount> m_pseudo_element_nodes; Array<JS::GCPtr<Layout::Node>, to_underlying(CSS::Selector::PseudoElement::PseudoElementCount)> m_pseudo_element_nodes;
}; };
template<> template<>

View file

@ -508,6 +508,9 @@ void dump_selector(StringBuilder& builder, CSS::Selector const& selector)
case CSS::Selector::PseudoElement::Placeholder: case CSS::Selector::PseudoElement::Placeholder:
pseudo_element_description = "placeholder"; pseudo_element_description = "placeholder";
break; break;
case CSS::Selector::PseudoElement::PseudoElementCount:
VERIFY_NOT_REACHED();
break;
} }
builder.appendff(" pseudo_element={}", pseudo_element_description); builder.appendff(" pseudo_element={}", pseudo_element_description);