Add string_cache override for geckolib based on gecko atoms.

The work in these patches is based on Ms2ger's gecko-atom crate.
This commit is contained in:
Bobby Holley 2016-05-11 11:43:54 -07:00
parent 825f610dec
commit b521c293dc
25 changed files with 5153 additions and 185 deletions

View file

@ -53,7 +53,7 @@ ref_slice = "1.0"
regex = "0.1.43"
rustc-serialize = "0.3"
script_traits = {path = "../script_traits"}
selectors = {version = "0.5", features = ["heap_size"]}
selectors = {version = "0.6", features = ["heap_size"]}
serde = "0.7"
smallvec = "0.1"
string_cache = {version = "0.2.12", features = ["heap_size", "unstable"]}

View file

@ -83,7 +83,7 @@ use std::default::Default;
use std::mem;
use std::sync::Arc;
use std::sync::atomic::{AtomicUsize, Ordering};
use string_cache::{Atom, Namespace, QualName};
use string_cache::{Atom, BorrowedAtom, BorrowedNamespace, Namespace, QualName};
use style::element_state::*;
use style::properties::DeclaredValue;
use style::properties::longhands::{self, background_image, border_spacing, font_family, overflow_x, font_size};
@ -2131,12 +2131,12 @@ impl<'a> ::selectors::Element for Root<Element> {
})
}
fn get_local_name(&self) -> &Atom {
self.local_name()
fn get_local_name(&self) -> BorrowedAtom {
BorrowedAtom(self.local_name())
}
fn get_namespace(&self) -> &Namespace {
self.namespace()
fn get_namespace(&self) -> BorrowedNamespace {
BorrowedNamespace(self.namespace())
}
fn match_non_ts_pseudo_class(&self, pseudo_class: NonTSPseudoClass) -> bool {