diff options
Diffstat (limited to 'src/components/script')
-rw-r--r-- | src/components/script/dom/performance.rs | 4 | ||||
-rw-r--r-- | src/components/script/dom/testbinding.rs | 12 | ||||
-rw-r--r-- | src/components/script/dom/validitystate.rs | 5 |
3 files changed, 12 insertions, 9 deletions
diff --git a/src/components/script/dom/performance.rs b/src/components/script/dom/performance.rs index 13910eb701d..fca1b6d4ebf 100644 --- a/src/components/script/dom/performance.rs +++ b/src/components/script/dom/performance.rs @@ -7,7 +7,6 @@ use dom::bindings::js::{JS, JSRef, Temporary}; use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; use dom::performancetiming::{PerformanceTiming, PerformanceTimingMethods}; use dom::window::Window; - use time; pub type DOMHighResTimeStamp = f64; @@ -20,9 +19,10 @@ pub struct Performance { impl Performance { fn new_inherited(window: &JSRef<Window>) -> Performance { + let timing = PerformanceTiming::new(window).root().root_ref().unrooted(); Performance { reflector_: Reflector::new(), - timing: PerformanceTiming::new(window).root().root_ref().unrooted(), + timing: timing, } } diff --git a/src/components/script/dom/testbinding.rs b/src/components/script/dom/testbinding.rs index 4b753785e10..ce2a2841f8c 100644 --- a/src/components/script/dom/testbinding.rs +++ b/src/components/script/dom/testbinding.rs @@ -15,10 +15,12 @@ use servo_util::str::DOMString; use js::jsapi::JSContext; use js::jsval::{JSVal, NullValue}; +use std::cell::Cell; + #[deriving(Encodable)] pub struct TestBinding { pub reflector: Reflector, - pub window: JS<Window>, + pub window: Cell<JS<Window>>, } pub trait TestBindingMethods { @@ -243,19 +245,19 @@ pub trait TestBindingMethods { impl<'a> TestBindingMethods for JSRef<'a, TestBinding> { fn InterfaceAttribute(&self) -> Temporary<Blob> { - let window = self.window.root(); + let window = self.window.get().root(); Blob::new(&*window) } fn GetInterfaceAttributeNullable(&self) -> Option<Temporary<Blob>> { - let window = self.window.root(); + let window = self.window.get().root(); Some(Blob::new(&*window)) } fn ReceiveInterface(&self) -> Temporary<Blob> { - let window = self.window.root(); + let window = self.window.get().root(); Blob::new(&*window) } fn ReceiveNullableInterface(&self) -> Option<Temporary<Blob>> { - let window = self.window.root(); + let window = self.window.get().root(); Some(Blob::new(&*window)) } } diff --git a/src/components/script/dom/validitystate.rs b/src/components/script/dom/validitystate.rs index ffb7ca95864..f4c4aa114cf 100644 --- a/src/components/script/dom/validitystate.rs +++ b/src/components/script/dom/validitystate.rs @@ -6,11 +6,12 @@ use dom::bindings::codegen::BindingDeclarations::ValidityStateBinding; use dom::bindings::js::{JS, JSRef, Temporary}; use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; use dom::window::Window; +use std::cell::Cell; #[deriving(Encodable)] pub struct ValidityState { pub reflector_: Reflector, - pub window: JS<Window>, + pub window: Cell<JS<Window>>, pub state: u8, } @@ -18,7 +19,7 @@ impl ValidityState { pub fn new_inherited(window: &JSRef<Window>) -> ValidityState { ValidityState { reflector_: Reflector::new(), - window: window.unrooted(), + window: Cell::new(window.unrooted()), state: 0, } } |