diff options
author | Manish Goregaokar <manishsmail@gmail.com> | 2016-05-27 15:12:27 +0530 |
---|---|---|
committer | Manish Goregaokar <manishsmail@gmail.com> | 2016-05-27 15:12:27 +0530 |
commit | 283fc8dd25e32fee83f8a682dd94d34dcb33bf68 (patch) | |
tree | 6f1aecbb4901168383a0c443e34d6427c57c4950 /components/script/devtools.rs | |
parent | 48257ef282612d69d4bb4f059f7be730678510f4 (diff) | |
download | servo-283fc8dd25e32fee83f8a682dd94d34dcb33bf68.tar.gz servo-283fc8dd25e32fee83f8a682dd94d34dcb33bf68.zip |
Use JSautoCompartment in devtools handle_evaluate_js to avoid segfault
fixes #11457
Diffstat (limited to 'components/script/devtools.rs')
-rw-r--r-- | components/script/devtools.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/components/script/devtools.rs b/components/script/devtools.rs index e818b0c0ca0..8f783126a62 100644 --- a/components/script/devtools.rs +++ b/components/script/devtools.rs @@ -21,7 +21,7 @@ use dom::element::Element; use dom::node::Node; use dom::window::Window; use ipc_channel::ipc::IpcSender; -use js::jsapi::{ObjectClassName, RootedObject, RootedValue}; +use js::jsapi::{JSAutoCompartment, ObjectClassName, RootedObject, RootedValue}; use js::jsval::UndefinedValue; use msg::constellation_msg::PipelineId; use script_thread::get_browsing_context; @@ -35,6 +35,8 @@ pub fn handle_evaluate_js(global: &GlobalRef, eval: String, reply: IpcSender<Eva // global.get_cx() returns a valid `JSContext` pointer, so this is safe. let result = unsafe { let cx = global.get_cx(); + let globalhandle = global.reflector().get_jsobject(); + let _ac = JSAutoCompartment::new(cx, globalhandle.get()); let mut rval = RootedValue::new(cx, UndefinedValue()); global.evaluate_js_on_global_with_result(&eval, rval.handle_mut()); |