From 8c007ad9990ec70a6f86bed85ef8592f9f726a0b Mon Sep 17 00:00:00 2001 From: Cameron McCormack Date: Sat, 30 Mar 2019 00:16:15 +0000 Subject: [PATCH] style: Add ToShmem impl for Atom. Differential Revision: https://phabricator.services.mozilla.com/D17192 --- components/style/gecko_string_cache/mod.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/components/style/gecko_string_cache/mod.rs b/components/style/gecko_string_cache/mod.rs index 9c33f25d9b85..f4c875cb7ad1 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 for Atom { } } +impl ToShmem for Atom { + fn to_shmem(&self, _builder: &mut SharedMemoryBuilder) -> ManuallyDrop { + 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]