diff options
author | marmeladema <xademax@gmail.com> | 2019-07-22 01:09:24 +0100 |
---|---|---|
committer | marmeladema <xademax@gmail.com> | 2019-07-24 08:24:50 +0100 |
commit | 2c5d0a6ebc39ad263e2bbe623e357a11b4cec5aa (patch) | |
tree | c1c93f26ab047bb010d1781511a750a302cc5636 /components/script/dom/audiobuffer.rs | |
parent | 808fa65aef163879b82baddc4af0a5445f806c81 (diff) | |
download | servo-2c5d0a6ebc39ad263e2bbe623e357a11b4cec5aa.tar.gz servo-2c5d0a6ebc39ad263e2bbe623e357a11b4cec5aa.zip |
Convert CGTraitInterface to use safe JSContext instead of raw JSContext
Diffstat (limited to 'components/script/dom/audiobuffer.rs')
-rw-r--r-- | components/script/dom/audiobuffer.rs | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/components/script/dom/audiobuffer.rs b/components/script/dom/audiobuffer.rs index b3f18f319ad..a5b8dfbc8c8 100644 --- a/components/script/dom/audiobuffer.rs +++ b/components/script/dom/audiobuffer.rs @@ -13,6 +13,7 @@ use crate::dom::bindings::num::Finite; use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector}; use crate::dom::bindings::root::DomRoot; use crate::dom::window::Window; +use crate::script_runtime::JSContext as SafeJSContext; use dom_struct::dom_struct; use js::jsapi::JS_GetArrayBufferViewBuffer; use js::jsapi::{Heap, JSContext, JSObject}; @@ -230,22 +231,20 @@ impl AudioBufferMethods for AudioBuffer { // https://webaudio.github.io/web-audio-api/#dom-audiobuffer-getchanneldata #[allow(unsafe_code)] - unsafe fn GetChannelData( - &self, - cx: *mut JSContext, - channel: u32, - ) -> Fallible<NonNull<JSObject>> { + fn GetChannelData(&self, cx: SafeJSContext, channel: u32) -> Fallible<NonNull<JSObject>> { if channel >= self.number_of_channels { return Err(Error::IndexSize); } - if !self.restore_js_channel_data(cx) { - return Err(Error::JSFailed); - } + unsafe { + if !self.restore_js_channel_data(*cx) { + return Err(Error::JSFailed); + } - Ok(NonNull::new_unchecked( - self.js_channels.borrow()[channel as usize].get(), - )) + Ok(NonNull::new_unchecked( + self.js_channels.borrow()[channel as usize].get(), + )) + } } // https://webaudio.github.io/web-audio-api/#dom-audiobuffer-copyfromchannel |