mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Remove some usage of unsafe code in FileReader
This commit is contained in:
parent
5ca3dd9d05
commit
0ecab7bbe0
1 changed files with 6 additions and 8 deletions
|
@ -22,7 +22,7 @@ use crate::dom::event::{Event, EventBubbles, EventCancelable};
|
||||||
use crate::dom::eventtarget::EventTarget;
|
use crate::dom::eventtarget::EventTarget;
|
||||||
use crate::dom::globalscope::GlobalScope;
|
use crate::dom::globalscope::GlobalScope;
|
||||||
use crate::dom::progressevent::ProgressEvent;
|
use crate::dom::progressevent::ProgressEvent;
|
||||||
use crate::script_runtime::JSContext as SafeJSContext;
|
use crate::script_runtime::JSContext;
|
||||||
use crate::task::TaskCanceller;
|
use crate::task::TaskCanceller;
|
||||||
use crate::task_source::file_reading::{FileReadingTask, FileReadingTaskSource};
|
use crate::task_source::file_reading::{FileReadingTask, FileReadingTaskSource};
|
||||||
use crate::task_source::{TaskSource, TaskSourceName};
|
use crate::task_source::{TaskSource, TaskSourceName};
|
||||||
|
@ -30,7 +30,6 @@ use base64;
|
||||||
use dom_struct::dom_struct;
|
use dom_struct::dom_struct;
|
||||||
use encoding_rs::{Encoding, UTF_8};
|
use encoding_rs::{Encoding, UTF_8};
|
||||||
use js::jsapi::Heap;
|
use js::jsapi::Heap;
|
||||||
use js::jsapi::JSContext;
|
|
||||||
use js::jsapi::JSObject;
|
use js::jsapi::JSObject;
|
||||||
use js::jsval::{self, JSVal};
|
use js::jsval::{self, JSVal};
|
||||||
use js::typedarray::{ArrayBuffer, CreateWith};
|
use js::typedarray::{ArrayBuffer, CreateWith};
|
||||||
|
@ -233,7 +232,6 @@ impl FileReader {
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://w3c.github.io/FileAPI/#dfn-readAsText
|
// https://w3c.github.io/FileAPI/#dfn-readAsText
|
||||||
#[allow(unsafe_code)]
|
|
||||||
pub fn process_read_eof(
|
pub fn process_read_eof(
|
||||||
filereader: TrustedFileReader,
|
filereader: TrustedFileReader,
|
||||||
gen_id: GenerationId,
|
gen_id: GenerationId,
|
||||||
|
@ -266,7 +264,7 @@ impl FileReader {
|
||||||
let _ac = enter_realm(&*fr);
|
let _ac = enter_realm(&*fr);
|
||||||
FileReader::perform_readasarraybuffer(
|
FileReader::perform_readasarraybuffer(
|
||||||
&fr.result,
|
&fr.result,
|
||||||
*fr.global().get_cx(),
|
fr.global().get_cx(),
|
||||||
data,
|
data,
|
||||||
&blob_contents,
|
&blob_contents,
|
||||||
)
|
)
|
||||||
|
@ -313,14 +311,14 @@ impl FileReader {
|
||||||
#[allow(unsafe_code)]
|
#[allow(unsafe_code)]
|
||||||
fn perform_readasarraybuffer(
|
fn perform_readasarraybuffer(
|
||||||
result: &DomRefCell<Option<FileReaderResult>>,
|
result: &DomRefCell<Option<FileReaderResult>>,
|
||||||
cx: *mut JSContext,
|
cx: JSContext,
|
||||||
_: ReadMetaData,
|
_: ReadMetaData,
|
||||||
bytes: &[u8],
|
bytes: &[u8],
|
||||||
) {
|
) {
|
||||||
unsafe {
|
unsafe {
|
||||||
rooted!(in(cx) let mut array_buffer = ptr::null_mut::<JSObject>());
|
rooted!(in(*cx) let mut array_buffer = ptr::null_mut::<JSObject>());
|
||||||
assert!(
|
assert!(
|
||||||
ArrayBuffer::create(cx, CreateWith::Slice(bytes), array_buffer.handle_mut())
|
ArrayBuffer::create(*cx, CreateWith::Slice(bytes), array_buffer.handle_mut())
|
||||||
.is_ok()
|
.is_ok()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -392,7 +390,7 @@ impl FileReaderMethods for FileReader {
|
||||||
|
|
||||||
#[allow(unsafe_code)]
|
#[allow(unsafe_code)]
|
||||||
// https://w3c.github.io/FileAPI/#dfn-result
|
// https://w3c.github.io/FileAPI/#dfn-result
|
||||||
fn GetResult(&self, _: SafeJSContext) -> Option<StringOrObject> {
|
fn GetResult(&self, _: JSContext) -> Option<StringOrObject> {
|
||||||
self.result.borrow().as_ref().map(|r| match *r {
|
self.result.borrow().as_ref().map(|r| match *r {
|
||||||
FileReaderResult::String(ref string) => StringOrObject::String(string.clone()),
|
FileReaderResult::String(ref string) => StringOrObject::String(string.clone()),
|
||||||
FileReaderResult::ArrayBuffer(ref arr_buffer) => {
|
FileReaderResult::ArrayBuffer(ref arr_buffer) => {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue