aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/vrpose.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/vrpose.rs')
-rw-r--r--components/script/dom/vrpose.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/components/script/dom/vrpose.rs b/components/script/dom/vrpose.rs
index cbf56c5cc26..11ad1c96887 100644
--- a/components/script/dom/vrpose.rs
+++ b/components/script/dom/vrpose.rs
@@ -6,11 +6,11 @@ use core::nonzero::NonZero;
use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::VRPoseBinding;
use dom::bindings::codegen::Bindings::VRPoseBinding::VRPoseMethods;
-use dom::bindings::conversions::{slice_to_array_buffer_view, update_array_buffer_view};
use dom::bindings::js::Root;
use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object};
use dom::globalscope::GlobalScope;
use js::jsapi::{Heap, JSContext, JSObject};
+use js::typedarray::Float32Array;
use std::ptr;
use webvr_traits::webvr;
@@ -33,9 +33,12 @@ unsafe fn update_or_create_typed_array(cx: *mut JSContext,
match src {
Some(ref data) => {
if dst.get().is_null() {
- dst.set(slice_to_array_buffer_view(cx, &data));
+ let _ = Float32Array::create(cx, data.len() as u32, src, dst.handle_mut());
} else {
- update_array_buffer_view(dst.get(), &data);
+ typedarray!(in(cx) let array: Float32Array = dst.get());
+ if let Ok(mut array) = array {
+ array.update(data);
+ }
}
},
None => {