style: Move relations_are_shareable to matching.rs

It's only used there.
This commit is contained in:
Emilio Cobos Álvarez 2017-01-07 01:47:39 +01:00
parent 94d62a2afb
commit ac8547416d
No known key found for this signature in database
GPG key ID: 056B727BB9C1027C
2 changed files with 11 additions and 15 deletions

View file

@ -30,6 +30,17 @@ use std::slice::IterMut;
use std::sync::Arc; use std::sync::Arc;
use stylist::ApplicableDeclarationBlock; use stylist::ApplicableDeclarationBlock;
/// Determines the amount of relations where we're going to share style.
#[inline]
fn relations_are_shareable(relations: &StyleRelations) -> bool {
use selectors::matching::*;
!relations.intersects(AFFECTED_BY_ID_SELECTOR |
AFFECTED_BY_PSEUDO_ELEMENTS | AFFECTED_BY_STATE |
AFFECTED_BY_NON_COMMON_STYLE_AFFECTING_ATTRIBUTE_SELECTOR |
AFFECTED_BY_STYLE_ATTRIBUTE |
AFFECTED_BY_PRESENTATIONAL_HINTS)
}
fn create_common_style_affecting_attributes_from_element<E: TElement>(element: &E) fn create_common_style_affecting_attributes_from_element<E: TElement>(element: &E)
-> CommonStyleAffectingAttributes { -> CommonStyleAffectingAttributes {
let mut flags = CommonStyleAffectingAttributes::empty(); let mut flags = CommonStyleAffectingAttributes::empty();
@ -72,7 +83,6 @@ pub struct MatchResults {
impl MatchResults { impl MatchResults {
/// Returns true if the primary rule node is shareable with other nodes. /// Returns true if the primary rule node is shareable with other nodes.
pub fn primary_is_shareable(&self) -> bool { pub fn primary_is_shareable(&self) -> bool {
use traversal::relations_are_shareable;
relations_are_shareable(&self.relations) relations_are_shareable(&self.relations)
} }
} }
@ -375,8 +385,6 @@ impl<E: TElement> StyleSharingCandidateCache<E> {
element: &E, element: &E,
style: &Arc<ComputedValues>, style: &Arc<ComputedValues>,
relations: StyleRelations) { relations: StyleRelations) {
use traversal::relations_are_shareable;
let parent = match element.parent_element() { let parent = match element.parent_element() {
Some(element) => element, Some(element) => element,
None => { None => {

View file

@ -14,7 +14,6 @@ use matching::{MatchMethods, StyleSharingResult};
use restyle_hints::{RESTYLE_DESCENDANTS, RESTYLE_SELF}; use restyle_hints::{RESTYLE_DESCENDANTS, RESTYLE_SELF};
use selector_parser::RestyleDamage; use selector_parser::RestyleDamage;
use selectors::Element; use selectors::Element;
use selectors::matching::StyleRelations;
use servo_config::opts; use servo_config::opts;
use std::mem; use std::mem;
use std::sync::atomic::{AtomicUsize, ATOMIC_USIZE_INIT, Ordering}; use std::sync::atomic::{AtomicUsize, ATOMIC_USIZE_INIT, Ordering};
@ -276,17 +275,6 @@ pub trait DomTraversal<N: TNode> : Sync {
fn create_thread_local_context(&self) -> Self::ThreadLocalContext; fn create_thread_local_context(&self) -> Self::ThreadLocalContext;
} }
/// Determines the amount of relations where we're going to share style.
#[inline]
pub fn relations_are_shareable(relations: &StyleRelations) -> bool {
use selectors::matching::*;
!relations.intersects(AFFECTED_BY_ID_SELECTOR |
AFFECTED_BY_PSEUDO_ELEMENTS | AFFECTED_BY_STATE |
AFFECTED_BY_NON_COMMON_STYLE_AFFECTING_ATTRIBUTE_SELECTOR |
AFFECTED_BY_STYLE_ATTRIBUTE |
AFFECTED_BY_PRESENTATIONAL_HINTS)
}
/// Helper for the function below. /// Helper for the function below.
fn resolve_style_internal<E, F>(context: &StyleContext<E>, element: E, ensure_data: &F) fn resolve_style_internal<E, F>(context: &StyleContext<E>, element: E, ensure_data: &F)
-> Option<E> -> Option<E>