diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2016-06-07 00:26:49 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2016-06-07 00:26:49 +0200 |
commit | 27620320f364d5345de3631ec605d1c3b376208f (patch) | |
tree | 0dc86a6274658efea308280298dbaaf3a5e97000 /components/script/dom | |
parent | bc52617d3351d64cfd1479c5088b591370529f59 (diff) | |
download | servo-27620320f364d5345de3631ec605d1c3b376208f.tar.gz servo-27620320f364d5345de3631ec605d1c3b376208f.zip |
Make report_pending_exception unsafe
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/bindings/error.rs | 10 | ||||
-rw-r--r-- | components/script/dom/eventtarget.rs | 4 | ||||
-rw-r--r-- | components/script/dom/workerglobalscope.rs | 6 |
3 files changed, 12 insertions, 8 deletions
diff --git a/components/script/dom/bindings/error.rs b/components/script/dom/bindings/error.rs index a9ee93663e7..ed0b81c4d64 100644 --- a/components/script/dom/bindings/error.rs +++ b/components/script/dom/bindings/error.rs @@ -121,12 +121,10 @@ pub unsafe fn throw_dom_exception(cx: *mut JSContext, global: GlobalRef, result: } /// Report a pending exception, thereby clearing it. -pub fn report_pending_exception(cx: *mut JSContext, obj: *mut JSObject) { - unsafe { - if JS_IsExceptionPending(cx) { - let _ac = JSAutoCompartment::new(cx, obj); - JS_ReportPendingException(cx); - } +pub unsafe fn report_pending_exception(cx: *mut JSContext, obj: *mut JSObject) { + if JS_IsExceptionPending(cx) { + let _ac = JSAutoCompartment::new(cx, obj); + JS_ReportPendingException(cx); } } diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs index ebacde4de4d..9f41abee7d7 100644 --- a/components/script/dom/eventtarget.rs +++ b/components/script/dom/eventtarget.rs @@ -425,7 +425,9 @@ impl EventTarget { }; if !rv || handler.ptr.is_null() { // Step 1.8.2 - report_pending_exception(cx, self.reflector().get_jsobject().get()); + unsafe { + report_pending_exception(cx, self.reflector().get_jsobject().get()); + } // Step 1.8.1 / 1.8.3 return None; } diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs index 89b4ed59bf9..b10916a4b6e 100644 --- a/components/script/dom/workerglobalscope.rs +++ b/components/script/dom/workerglobalscope.rs @@ -416,6 +416,7 @@ impl WorkerGlobalScopeMethods for WorkerGlobalScope { impl WorkerGlobalScope { + #[allow(unsafe_code)] pub fn execute_script(&self, source: DOMString) { let mut rval = RootedValue::new(self.runtime.cx(), UndefinedValue()); match self.runtime.evaluate_script( @@ -428,7 +429,10 @@ impl WorkerGlobalScope { // TODO: An error needs to be dispatched to the parent. // https://github.com/servo/servo/issues/6422 println!("evaluate_script failed"); - report_pending_exception(self.runtime.cx(), self.reflector().get_jsobject().get()); + unsafe { + report_pending_exception( + self.runtime.cx(), self.reflector().get_jsobject().get()); + } } } } |