diff options
author | Josh Matthews <josh@joshmatthews.net> | 2015-02-26 00:19:27 -0500 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2015-03-03 16:25:40 -0500 |
commit | 4972b623e18d2bdad62a8c617e6885eb9b8158b8 (patch) | |
tree | f0ede2b7b1635bd97d57e85983558bb793ac0971 /components/script/dom/window.rs | |
parent | c816975750c44ea9217e10f1f13ed1e94068a9e8 (diff) | |
download | servo-4972b623e18d2bdad62a8c617e6885eb9b8158b8.tar.gz servo-4972b623e18d2bdad62a8c617e6885eb9b8158b8.zip |
Separate disposing of layout data from the GCing of the DOM object reflectors. Change the order of operations when shutting down the script task to ensure that Window globals aren't used after they've been GCed.
Diffstat (limited to 'components/script/dom/window.rs')
-rw-r--r-- | components/script/dom/window.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 28d7ac8b92d..097d8ed4ea0 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -461,6 +461,9 @@ impl<'a, T: Reflectable> ScriptHelpers for JSRef<'a, T> { impl<'a> WindowHelpers for JSRef<'a, Window> { fn clear_js_context(self) { + let document = self.Document().root(); + NodeCast::from_ref(document.r()).teardown(); + *self.js_context.borrow_mut() = None; *self.browser_context.borrow_mut() = None; } |