Dropped references to RefCell.

Closes #11466
This commit is contained in:
rwakulszowa 2016-06-02 13:16:56 +02:00
parent 134fd18767
commit ef341128e2

View file

@ -6,7 +6,6 @@ use ipc_channel::ipc::{self, IpcReceiver, IpcSender};
use mime_guess::guess_mime_type_opt; use mime_guess::guess_mime_type_opt;
use net_traits::filemanager_thread::{FileManagerThreadMsg, FileManagerResult}; use net_traits::filemanager_thread::{FileManagerThreadMsg, FileManagerResult};
use net_traits::filemanager_thread::{SelectedFile, FileManagerThreadError}; use net_traits::filemanager_thread::{SelectedFile, FileManagerThreadError};
use std::cell::RefCell;
use std::collections::HashMap; use std::collections::HashMap;
use std::fs::File; use std::fs::File;
use std::io::Read; use std::io::Read;
@ -16,7 +15,7 @@ use uuid::Uuid;
pub struct FileManager { pub struct FileManager {
receiver: IpcReceiver<FileManagerThreadMsg>, receiver: IpcReceiver<FileManagerThreadMsg>,
idmap: RefCell<HashMap<Uuid, PathBuf>>, idmap: HashMap<Uuid, PathBuf>,
} }
pub trait FileManagerThreadFactory { pub trait FileManagerThreadFactory {
@ -41,7 +40,7 @@ impl FileManager {
fn new(recv: IpcReceiver<FileManagerThreadMsg>) -> FileManager { fn new(recv: IpcReceiver<FileManagerThreadMsg>) -> FileManager {
FileManager { FileManager {
receiver: recv, receiver: recv,
idmap: RefCell::new(HashMap::new()), idmap: HashMap::new(),
} }
} }
@ -96,7 +95,7 @@ impl FileManager {
match File::open(file_path) { match File::open(file_path) {
Ok(handler) => { Ok(handler) => {
let id = Uuid::new_v4(); let id = Uuid::new_v4();
self.idmap.borrow_mut().insert(id, file_path.to_path_buf()); self.idmap.insert(id, file_path.to_path_buf());
// Unix Epoch: https://doc.servo.org/std/time/constant.UNIX_EPOCH.html // Unix Epoch: https://doc.servo.org/std/time/constant.UNIX_EPOCH.html
let epoch = handler.metadata().and_then(|metadata| metadata.modified()).map_err(|_| ()) let epoch = handler.metadata().and_then(|metadata| metadata.modified()).map_err(|_| ())
@ -132,7 +131,7 @@ impl FileManager {
} }
fn read_file(&mut self, sender: IpcSender<FileManagerResult<Vec<u8>>>, id: Uuid) { fn read_file(&mut self, sender: IpcSender<FileManagerResult<Vec<u8>>>, id: Uuid) {
match self.idmap.borrow().get(&id).and_then(|filepath| { match self.idmap.get(&id).and_then(|filepath| {
let mut buffer = vec![]; let mut buffer = vec![];
match File::open(&filepath) { match File::open(&filepath) {
Ok(mut handler) => { Ok(mut handler) => {
@ -154,6 +153,6 @@ impl FileManager {
} }
fn delete_fileid(&mut self, id: Uuid) { fn delete_fileid(&mut self, id: Uuid) {
self.idmap.borrow_mut().remove(&id); self.idmap.remove(&id);
} }
} }