Remove a bunch of _forever suffixes in Attr methods

They don't return &'static references anymore.
This commit is contained in:
Anthony Ramine 2020-03-30 12:19:28 +02:00
parent ba5bcec7e4
commit 02fb5a68e6
2 changed files with 14 additions and 14 deletions

View file

@ -234,35 +234,35 @@ impl Attr {
#[allow(unsafe_code)]
pub trait AttrHelpersForLayout<'dom> {
unsafe fn value_forever(self) -> &'dom AttrValue;
unsafe fn value(self) -> &'dom AttrValue;
unsafe fn value_ref_forever(self) -> &'dom str;
unsafe fn value_tokens_forever(self) -> Option<&'dom [Atom]>;
unsafe fn local_name_atom_forever(self) -> LocalName;
unsafe fn value_tokens(self) -> Option<&'dom [Atom]>;
unsafe fn local_name_atom(self) -> LocalName;
}
#[allow(unsafe_code)]
impl<'dom> AttrHelpersForLayout<'dom> for LayoutDom<'dom, Attr> {
#[inline]
unsafe fn value_forever(self) -> &'dom AttrValue {
unsafe fn value(self) -> &'dom AttrValue {
(*self.unsafe_get()).value.borrow_for_layout()
}
#[inline]
unsafe fn value_ref_forever(self) -> &'dom str {
&**self.value_forever()
&**self.value()
}
#[inline]
unsafe fn value_tokens_forever(self) -> Option<&'dom [Atom]> {
unsafe fn value_tokens(self) -> Option<&'dom [Atom]> {
// This transmute is used to cheat the lifetime restriction.
match *self.value_forever() {
match *self.value() {
AttrValue::TokenList(_, ref tokens) => Some(tokens),
_ => None,
}
}
#[inline]
unsafe fn local_name_atom_forever(self) -> LocalName {
unsafe fn local_name_atom(self) -> LocalName {
(*self.unsafe_get()).identifier.local_name.clone()
}
}

View file

@ -578,7 +578,7 @@ pub unsafe fn get_attr_for_layout<'dom>(
.iter()
.find(|attr| {
let attr = attr.to_layout();
*name == attr.local_name_atom_forever() && (*attr.unsafe_get()).namespace() == namespace
*name == attr.local_name_atom() && (*attr.unsafe_get()).namespace() == namespace
})
.map(|attr| attr.to_layout())
}
@ -591,7 +591,7 @@ impl RawLayoutElementHelpers for Element {
namespace: &Namespace,
name: &LocalName,
) -> Option<&'a AttrValue> {
get_attr_for_layout(self, namespace, name).map(|attr| attr.value_forever())
get_attr_for_layout(self, namespace, name).map(|attr| attr.value())
}
#[inline]
@ -610,8 +610,8 @@ impl RawLayoutElementHelpers for Element {
.iter()
.filter_map(|attr| {
let attr = attr.to_layout();
if *name == attr.local_name_atom_forever() {
Some(attr.value_forever())
if *name == attr.local_name_atom() {
Some(attr.value())
} else {
None
}
@ -656,7 +656,7 @@ impl<'dom> LayoutElementHelpers<'dom> for LayoutDom<'dom, Element> {
get_attr_for_layout(&*self.unsafe_get(), &ns!(), &local_name!("class")).map_or(
false,
|attr| {
attr.value_tokens_forever()
attr.value_tokens()
.unwrap()
.iter()
.any(|atom| case_sensitivity.eq_atom(atom, name))
@ -668,7 +668,7 @@ impl<'dom> LayoutElementHelpers<'dom> for LayoutDom<'dom, Element> {
#[inline]
unsafe fn get_classes_for_layout(self) -> Option<&'dom [Atom]> {
get_attr_for_layout(&*self.unsafe_get(), &ns!(), &local_name!("class"))
.map(|attr| attr.value_tokens_forever().unwrap())
.map(|attr| attr.value_tokens().unwrap())
}
#[allow(unsafe_code)]