diff options
Diffstat (limited to 'src/components/script/dom/bindings/trace.rs')
-rw-r--r-- | src/components/script/dom/bindings/trace.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/components/script/dom/bindings/trace.rs b/src/components/script/dom/bindings/trace.rs index 129eafedfe7..240f280af65 100644 --- a/src/components/script/dom/bindings/trace.rs +++ b/src/components/script/dom/bindings/trace.rs @@ -10,7 +10,7 @@ use js::jsval::JSVal; use libc; use std::cast; -use std::cell::RefCell; +use std::cell::{Cell, RefCell}; use std::ptr; use std::ptr::null; use serialize::{Encodable, Encoder}; @@ -142,6 +142,12 @@ impl<S: Encoder<E>, E, T: Encodable<S, E>> Encodable<S, E> for Traceable<RefCell } } +impl<S: Encoder<E>, E, T: Encodable<S, E>+Copy> Encodable<S, E> for Traceable<Cell<T>> { + fn encode(&self, s: &mut S) -> Result<(), E> { + self.deref().get().encode(s) + } +} + impl<S: Encoder<E>, E> Encodable<S, E> for Traceable<*JSObject> { fn encode(&self, s: &mut S) -> Result<(), E> { trace_object(get_jstracer(s), "object", **self); |