diff options
author | Ms2ger <Ms2ger@gmail.com> | 2017-01-19 10:08:27 +0100 |
---|---|---|
committer | Ms2ger <Ms2ger@gmail.com> | 2017-01-19 10:08:48 +0100 |
commit | 2071e41e645a842cedd058812f2b6df79b55c261 (patch) | |
tree | 62f9ae4dcc85d86e73ed01742ce18836cf47e4a8 /components/script/dom | |
parent | b8df502491b880cb942badee4ddbf7ec65b174fb (diff) | |
download | servo-2071e41e645a842cedd058812f2b6df79b55c261.tar.gz servo-2071e41e645a842cedd058812f2b6df79b55c261.zip |
Don't try to get the global of an object while it's being destroyed.
Fixes #15070.
Fixes #15097.
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/bindings/callback.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/components/script/dom/bindings/callback.rs b/components/script/dom/bindings/callback.rs index c246e11592b..c54eaade013 100644 --- a/components/script/dom/bindings/callback.rs +++ b/components/script/dom/bindings/callback.rs @@ -15,6 +15,7 @@ use js::jsapi::{JSCompartment, JS_EnterCompartment, JS_LeaveCompartment, RemoveR use js::jsapi::JSAutoCompartment; use js::jsapi::JS_GetProperty; use js::jsval::{JSVal, UndefinedValue, ObjectValue}; +use js::rust::Runtime; use std::default::Default; use std::ffi::CString; use std::mem::drop; @@ -88,7 +89,7 @@ impl Drop for CallbackObject { #[allow(unsafe_code)] fn drop(&mut self) { unsafe { - let cx = GlobalScope::from_object(self.callback.get()).get_cx(); + let cx = Runtime::get(); RemoveRawValueRoot(cx, self.permanent_js_root.get_unsafe()); } } |