diff options
author | Imanol Fernandez <mortimergoro@gmail.com> | 2017-07-05 22:38:37 +0200 |
---|---|---|
committer | Imanol Fernandez <mortimergoro@gmail.com> | 2017-07-05 22:38:37 +0200 |
commit | e936eac831e4dd3abefc940903480d8594f31419 (patch) | |
tree | 65f051f8a1be961bdd959fe54b982ffcb7903dec /components/script/dom/gamepad.rs | |
parent | fe4ee6de2efe60948bb5cadaabd53e326209ca07 (diff) | |
download | servo-e936eac831e4dd3abefc940903480d8594f31419.tar.gz servo-e936eac831e4dd3abefc940903480d8594f31419.zip |
GC Fixes
Diffstat (limited to 'components/script/dom/gamepad.rs')
-rw-r--r-- | components/script/dom/gamepad.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/components/script/dom/gamepad.rs b/components/script/dom/gamepad.rs index cb0c20ac50e..a7f65050941 100644 --- a/components/script/dom/gamepad.rs +++ b/components/script/dom/gamepad.rs @@ -20,6 +20,7 @@ use dom_struct::dom_struct; use js::jsapi::{Heap, JSContext, JSObject}; use js::typedarray::{Float64Array, CreateWith}; use std::cell::Cell; +use std::ptr; use webvr_traits::{WebVRGamepadData, WebVRGamepadHand, WebVRGamepadState}; #[dom_struct] @@ -86,9 +87,13 @@ impl Gamepad { data.display_id), global, GamepadBinding::Wrap); + + let cx = global.get_cx(); + rooted!(in (cx) let mut array = ptr::null_mut()); unsafe { - let _ = Float64Array::create(global.get_cx(), CreateWith::Slice(&state.axes), gamepad.axes.handle_mut()); + let _ = Float64Array::create(cx, CreateWith::Slice(&state.axes), array.handle_mut()); } + gamepad.axes.set(array.get()); gamepad } |