diff options
Diffstat (limited to 'components/script/dom/bindings/trace.rs')
-rw-r--r-- | components/script/dom/bindings/trace.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index a2c82b80722..ad8da0e41b0 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -70,6 +70,7 @@ use std::collections::hash_state::HashState; use std::ffi::CString; use std::hash::{Hash, Hasher}; use std::intrinsics::return_address; +use std::mem; use std::ops::{Deref, DerefMut}; use std::rc::Rc; use std::sync::Arc; @@ -482,6 +483,13 @@ impl<T: JSTraceable + Reflectable> RootedVec<T> { } } +impl<T: JSTraceable + Reflectable> RootedVec<JS<T>> { + /// Obtain a safe slice of references that can't outlive that RootedVec. + pub fn r(&self) -> &[&T] { + unsafe { mem::transmute(&*self.v) } + } +} + impl<T: JSTraceable + Reflectable> Drop for RootedVec<T> { fn drop(&mut self) { RootedTraceableSet::remove(self); |