From e80ac0000f6826568d526810373b4f59aeebeb27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Jim=C3=A9nez=20Moreno?= Date: Tue, 4 Sep 2018 15:23:11 +0200 Subject: [PATCH] Fix AudioBuffer crash. Do not modify number of channels while moving from shared to js channels --- components/script/dom/audiobuffer.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/components/script/dom/audiobuffer.rs b/components/script/dom/audiobuffer.rs index 761bcde404b..ccce8510586 100644 --- a/components/script/dom/audiobuffer.rs +++ b/components/script/dom/audiobuffer.rs @@ -134,8 +134,8 @@ impl AudioBuffer { // Move the channel data from shared_channels to js_channels. rooted!(in (cx) let mut array = ptr::null_mut::()); - let shared_channel = (*self.shared_channels.borrow_mut()).buffers.remove(i); - if Float32Array::create(cx, CreateWith::Slice(&shared_channel), array.handle_mut()) + let shared_channel = &(*self.shared_channels.borrow_mut()).buffers[i]; + if Float32Array::create(cx, CreateWith::Slice(shared_channel), array.handle_mut()) .is_err() { return false; @@ -182,8 +182,6 @@ impl AudioBuffer { // data into js_channels ArrayBuffers in restore_js_channel_data. } - self.js_channels.borrow_mut().clear(); - Some((*self.shared_channels.borrow()).clone()) } }