diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-06-07 07:07:03 -0500 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2016-06-07 07:07:03 -0500 |
commit | 6be0494287455c5c30ef6f898b511b4348efbeef (patch) | |
tree | 0b3b905942a715bf63814337c17e5d178adbc587 /components/script/dom | |
parent | b64b21ace0e9b3639906c9dc988c66ea596f3d88 (diff) | |
parent | 27620320f364d5345de3631ec605d1c3b376208f (diff) | |
download | servo-6be0494287455c5c30ef6f898b511b4348efbeef.tar.gz servo-6be0494287455c5c30ef6f898b511b4348efbeef.zip |
Auto merge of #11654 - nox:error, r=Ms2ger
Make report_pending_exception unsafe
<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11654)
<!-- Reviewable:end -->
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()); + } } } } |