diff --git a/components/style/shared_lock.rs b/components/style/shared_lock.rs index d151062199f0..5bfa7d19737e 100644 --- a/components/style/shared_lock.rs +++ b/components/style/shared_lock.rs @@ -258,6 +258,8 @@ impl Locked { #[cfg(feature = "gecko")] impl ToShmem for Locked { fn to_shmem(&self, builder: &mut SharedMemoryBuilder) -> to_shmem::Result { + use std::mem::ManuallyDrop; + let guard = self.shared_lock.read(); Ok(ManuallyDrop::new(Locked { shared_lock: SharedRwLock::read_only(), diff --git a/components/style/values/specified/font.rs b/components/style/values/specified/font.rs index 8ab48bfaf211..6fee8c2e770d 100644 --- a/components/style/values/specified/font.rs +++ b/components/style/values/specified/font.rs @@ -498,10 +498,12 @@ impl ToComputedValue for FontStretch { ToCss, ToResolvedValue, ToShmem, + Serialize, + Deserialize, )] -#[cfg_attr(feature = "servo", derive(Serialize, Deserialize))] #[allow(missing_docs)] -pub enum KeywordSize { +#[repr(u8)] +pub enum FontSizeKeyword { #[css(keyword = "xx-small")] XXSmall, XSmall, @@ -794,6 +796,7 @@ impl FontSizeKeyword { FontSizeKeyword::XLarge => medium * 3.0 / 2.0, FontSizeKeyword::XXLarge => medium * 2.0, FontSizeKeyword::XXXLarge => medium * 3.0, + FontSizeKeyword::None => unreachable!(), }) }