From ca5e7097a0f2737520591e24371d539e5af5e5ba Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Sun, 13 Sep 2015 16:43:28 +0200 Subject: [PATCH] Stop requiring that the type argument to RootedVec implements Reflectable. It is sufficient that it implements JSTraceable. --- components/script/dom/bindings/trace.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index e514e180486..ed16d5a2515 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -455,19 +455,17 @@ impl<'a, T: JSTraceable> Drop for RootedTraceable<'a, T> { } } -/// A vector of items that are rooted for the lifetime -/// of this struct. -/// Must be a reflectable +/// A vector of items that are rooted for the lifetime of this struct. #[allow(unrooted_must_root)] #[no_move] #[derive(JSTraceable)] #[allow_unrooted_interior] -pub struct RootedVec { +pub struct RootedVec { v: Vec } -impl RootedVec { +impl RootedVec { /// Create a vector of items of type T that is rooted for /// the lifetime of this struct pub fn new() -> RootedVec { @@ -495,20 +493,20 @@ impl RootedVec> { } } -impl Drop for RootedVec { +impl Drop for RootedVec { fn drop(&mut self) { RootedTraceableSet::remove(self); } } -impl Deref for RootedVec { +impl Deref for RootedVec { type Target = Vec; fn deref(&self) -> &Vec { &self.v } } -impl DerefMut for RootedVec { +impl DerefMut for RootedVec { fn deref_mut(&mut self) -> &mut Vec { &mut self.v }