diff options
-rw-r--r-- | components/style/gecko_string_cache/mod.rs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/components/style/gecko_string_cache/mod.rs b/components/style/gecko_string_cache/mod.rs index 9c33f25d9b8..f4c875cb7ad 100644 --- a/components/style/gecko_string_cache/mod.rs +++ b/components/style/gecko_string_cache/mod.rs @@ -25,9 +25,11 @@ use std::char::{self, DecodeUtf16}; use std::fmt::{self, Write}; use std::hash::{Hash, Hasher}; use std::iter::Cloned; +use std::mem::{self, ManuallyDrop}; use std::ops::Deref; -use std::{mem, slice, str}; +use std::{slice, str}; use style_traits::SpecifiedValueInfo; +use to_shmem::{SharedMemoryBuilder, ToShmem}; #[macro_use] #[allow(improper_ctypes, non_camel_case_types, missing_docs)] @@ -122,6 +124,14 @@ impl Borrow<WeakAtom> for Atom { } } +impl ToShmem for Atom { + fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> ManuallyDrop<Self> { + assert!(self.is_static(), "ToShmem failed for Atom: must be a static atom: {}", self); + + ManuallyDrop::new(Atom(self.0)) + } +} + impl Eq for WeakAtom {} impl PartialEq for WeakAtom { #[inline] |