From 684db8bd293e20ea0cd6e59697dfa84ca15fe8b2 Mon Sep 17 00:00:00 2001 From: deror1869107 Date: Mon, 26 Dec 2016 02:53:48 +0800 Subject: [PATCH] Rewrite Crypto::GetRandomValues to use typed array API Fix mut typed_array Redundant code --- Cargo.lock | 2 +- components/script/dom/crypto.rs | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f30b83643fc..10b0d2aa242 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1246,7 +1246,7 @@ dependencies = [ [[package]] name = "js" version = "0.1.3" -source = "git+https://github.com/servo/rust-mozjs#342f304a455080acf64f5ceb40a7f8059481ca01" +source = "git+https://github.com/servo/rust-mozjs#15ff1e83446e998112dcde731610e8b60cc32abf" dependencies = [ "cmake 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/components/script/dom/crypto.rs b/components/script/dom/crypto.rs index 4120456c77c..57b561e8a58 100644 --- a/components/script/dom/crypto.rs +++ b/components/script/dom/crypto.rs @@ -6,7 +6,6 @@ use core::nonzero::NonZero; use dom::bindings::cell::DOMRefCell; use dom::bindings::codegen::Bindings::CryptoBinding; use dom::bindings::codegen::Bindings::CryptoBinding::CryptoMethods; -use dom::bindings::conversions::array_buffer_view_data; use dom::bindings::error::{Error, Fallible}; use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; @@ -46,9 +45,10 @@ impl CryptoMethods for Crypto { input: *mut JSObject) -> Fallible> { assert!(!input.is_null()); - let mut data = match array_buffer_view_data::(input) { - Some(data) => data, - None => { + typedarray!(in(_cx) let mut array_buffer_view: ArrayBufferView = input); + let mut data = match array_buffer_view.as_mut() { + Ok(x) => x.as_mut_slice(), + Err(_) => { return Err(Error::Type("Argument to Crypto.getRandomValues is not an ArrayBufferView" .to_owned())); }