Rewrite Crypto::GetRandomValues to use typed array API

Fix mut typed_array

Redundant code
This commit is contained in:
deror1869107 2016-12-26 02:53:48 +08:00
parent b319dedda9
commit 684db8bd29
2 changed files with 5 additions and 5 deletions

2
Cargo.lock generated
View file

@ -1246,7 +1246,7 @@ dependencies = [
[[package]] [[package]]
name = "js" name = "js"
version = "0.1.3" version = "0.1.3"
source = "git+https://github.com/servo/rust-mozjs#342f304a455080acf64f5ceb40a7f8059481ca01" source = "git+https://github.com/servo/rust-mozjs#15ff1e83446e998112dcde731610e8b60cc32abf"
dependencies = [ dependencies = [
"cmake 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)", "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)", "heapsize 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",

View file

@ -6,7 +6,6 @@ use core::nonzero::NonZero;
use dom::bindings::cell::DOMRefCell; use dom::bindings::cell::DOMRefCell;
use dom::bindings::codegen::Bindings::CryptoBinding; use dom::bindings::codegen::Bindings::CryptoBinding;
use dom::bindings::codegen::Bindings::CryptoBinding::CryptoMethods; use dom::bindings::codegen::Bindings::CryptoBinding::CryptoMethods;
use dom::bindings::conversions::array_buffer_view_data;
use dom::bindings::error::{Error, Fallible}; use dom::bindings::error::{Error, Fallible};
use dom::bindings::js::Root; use dom::bindings::js::Root;
use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::reflector::{Reflector, reflect_dom_object};
@ -46,9 +45,10 @@ impl CryptoMethods for Crypto {
input: *mut JSObject) input: *mut JSObject)
-> Fallible<NonZero<*mut JSObject>> { -> Fallible<NonZero<*mut JSObject>> {
assert!(!input.is_null()); assert!(!input.is_null());
let mut data = match array_buffer_view_data::<u8>(input) { typedarray!(in(_cx) let mut array_buffer_view: ArrayBufferView = input);
Some(data) => data, let mut data = match array_buffer_view.as_mut() {
None => { Ok(x) => x.as_mut_slice(),
Err(_) => {
return Err(Error::Type("Argument to Crypto.getRandomValues is not an ArrayBufferView" return Err(Error::Type("Argument to Crypto.getRandomValues is not an ArrayBufferView"
.to_owned())); .to_owned()));
} }