style: Use Default for ExtraStyleData instead of Option.

This commit is contained in:
Emilio Cobos Álvarez 2018-01-12 11:04:24 +01:00
parent 9a1f20f1e8
commit 335ca47361
No known key found for this signature in database
GPG key ID: 056B727BB9C1027C
4 changed files with 18 additions and 13 deletions

View file

@ -2111,10 +2111,8 @@ impl<'le> ::selectors::Element for GeckoElement<'le> {
}
NonTSPseudoClass::MozWindowInactive => {
let state_bit = DocumentState::NS_DOCUMENT_STATE_WINDOW_INACTIVE;
if let Some(ref invalidation_data) = context.extra_data {
if invalidation_data.document_state.intersects(state_bit) {
return true;
}
if context.extra_data.document_state.intersects(state_bit) {
return true;
}
self.document_state().contains(state_bit)
@ -2133,12 +2131,10 @@ impl<'le> ::selectors::Element for GeckoElement<'le> {
}
NonTSPseudoClass::MozLocaleDir(ref dir) => {
let state_bit = DocumentState::NS_DOCUMENT_STATE_RTL_LOCALE;
if let Some(ref invalidation_data) = context.extra_data {
if context.extra_data.document_state.intersects(state_bit) {
// NOTE(emilio): We could still return false for
// Direction::Other(..), but we don't bother.
if invalidation_data.document_state.intersects(state_bit) {
return true;
}
return true;
}
let doc_is_rtl = self.document_state().contains(state_bit);

View file

@ -19,6 +19,15 @@ pub struct InvalidationMatchingData {
pub document_state: DocumentState,
}
impl Default for InvalidationMatchingData {
#[inline(always)]
fn default() -> Self {
Self {
document_state: DocumentState::empty(),
}
}
}
/// An invalidation processor for style changes due to state and attribute
/// changes.
pub struct DocumentStateInvalidationProcessor<'a, E: TElement> {
@ -46,9 +55,9 @@ impl<'a, E: TElement> DocumentStateInvalidationProcessor<'a, E> {
quirks_mode,
);
matching_context.extra_data = Some(InvalidationMatchingData {
matching_context.extra_data = InvalidationMatchingData {
document_state: document_states_changed,
});
};
Self { rules, document_states_changed, matching_context }
}