diff options
Diffstat (limited to 'components/net/filemanager_thread.rs')
-rw-r--r-- | components/net/filemanager_thread.rs | 47 |
1 files changed, 20 insertions, 27 deletions
diff --git a/components/net/filemanager_thread.rs b/components/net/filemanager_thread.rs index 90af2f37c87..f365aebb2b9 100644 --- a/components/net/filemanager_thread.rs +++ b/components/net/filemanager_thread.rs @@ -5,7 +5,6 @@ use std::collections::{HashMap, HashSet}; use std::fs::File; use std::io::{BufRead, BufReader, Read, Seek, SeekFrom}; -use std::mem; use std::ops::Index; use std::path::{Path, PathBuf}; use std::sync::atomic::{self, AtomicBool, AtomicUsize, Ordering}; @@ -103,13 +102,12 @@ impl FileManager { let store = self.store.clone(); self.thread_pool .upgrade() - .and_then(|pool| { + .map(|pool| { pool.spawn(move || { if let Err(e) = store.try_read_file(&sender, id, origin) { let _ = sender.send(Err(FileManagerThreadError::BlobURLStoreError(e))); } }); - Some(()) }) .unwrap_or_else(|| { warn!("FileManager tried to read a file after CoreResourceManager has exited."); @@ -160,11 +158,10 @@ impl FileManager { let embedder = self.embedder_proxy.clone(); self.thread_pool .upgrade() - .and_then(|pool| { + .map(|pool| { pool.spawn(move || { store.select_file(filter, sender, origin, opt_test_path, embedder); }); - Some(()) }) .unwrap_or_else(|| { warn!( @@ -177,11 +174,10 @@ impl FileManager { let embedder = self.embedder_proxy.clone(); self.thread_pool .upgrade() - .and_then(|pool| { + .map(|pool| { pool.spawn(move || { store.select_files(filter, sender, origin, opt_test_paths, embedder); }); - Some(()) }) .unwrap_or_else(|| { warn!( @@ -221,7 +217,7 @@ impl FileManager { let done_sender = done_sender.clone(); self.thread_pool .upgrade() - .and_then(|pool| { + .map(|pool| { pool.spawn(move || { loop { if cancellation_listener.lock().unwrap().cancelled() { @@ -266,7 +262,7 @@ impl FileManager { if length == 0 { let mut body = res_body.lock().unwrap(); let completed_body = match *body { - ResponseBody::Receiving(ref mut body) => mem::replace(body, vec![]), + ResponseBody::Receiving(ref mut body) => std::mem::take(body), _ => vec![], }; *body = ResponseBody::Done(completed_body); @@ -276,7 +272,6 @@ impl FileManager { reader.consume(length); } }); - Some(()) }) .unwrap_or_else(|| { warn!("FileManager tried to fetch a file in chunks after CoreResourceManager has exited."); @@ -373,7 +368,7 @@ impl FileManager { FileImpl::Sliced(parent_id, inner_rel_pos) => { // Next time we don't need to check validity since // we have already done that for requesting URL if necessary. - return self.fetch_blob_buf( + self.fetch_blob_buf( done_sender, cancellation_listener, &parent_id, @@ -383,7 +378,7 @@ impl FileManager { RelativePos::full_range().slice_inner(&inner_rel_pos), ), response, - ); + ) }, } } @@ -411,7 +406,7 @@ impl FileManagerStore { origin_in: &FileOrigin, ) -> Result<FileImpl, BlobURLStoreError> { match self.entries.read().unwrap().get(id) { - Some(ref entry) => { + Some(entry) => { if *origin_in != *entry.origin { Err(BlobURLStoreError::InvalidOrigin) } else { @@ -441,7 +436,7 @@ impl FileManagerStore { let zero_refs = entry.refs.load(Ordering::Acquire) == 0; // Check if no other fetch has acquired a token for this file. - let no_outstanding_tokens = entry.outstanding_tokens.len() == 0; + let no_outstanding_tokens = entry.outstanding_tokens.is_empty(); // Check if there is still a blob URL outstanding. let valid = entry.is_valid_url.load(Ordering::Acquire); @@ -450,7 +445,7 @@ impl FileManagerStore { let do_remove = zero_refs && no_outstanding_tokens && !valid; if do_remove { - entries.remove(&file_id); + entries.remove(file_id); } } } @@ -461,7 +456,7 @@ impl FileManagerStore { let parent_id = match entries.get(file_id) { Some(entry) => { if let FileImpl::Sliced(ref parent_id, _) = entry.file_impl { - Some(parent_id.clone()) + Some(*parent_id) } else { None } @@ -477,7 +472,7 @@ impl FileManagerStore { return FileTokenCheck::ShouldFail; } let token = Uuid::new_v4(); - entry.outstanding_tokens.insert(token.clone()); + entry.outstanding_tokens.insert(token); return FileTokenCheck::Required(token); } FileTokenCheck::ShouldFail @@ -585,7 +580,6 @@ impl FileManagerStore { }, None => { let _ = sender.send(Err(FileManagerThreadError::UserCancelled)); - return; }, } } @@ -631,7 +625,6 @@ impl FileManagerStore { }, None => { let _ = sender.send(Err(FileManagerThreadError::UserCancelled)); - return; }, } } @@ -672,7 +665,7 @@ impl FileManagerStore { id, FileStoreEntry { origin: origin.to_string(), - file_impl: file_impl, + file_impl, refs: AtomicUsize::new(1), // Invalid here since create_entry is called by file selection is_valid_url: AtomicBool::new(false), @@ -687,11 +680,11 @@ impl FileManagerStore { }; Ok(SelectedFile { - id: id, + id, filename: filename_path.to_path_buf(), modified: modified_epoch, size: file_size, - type_string: type_string, + type_string, }) } @@ -798,13 +791,13 @@ impl FileManagerStore { let is_valid = entry.is_valid_url.load(Ordering::Acquire); // Check if no fetch has acquired a token for this file. - let no_outstanding_tokens = entry.outstanding_tokens.len() == 0; + let no_outstanding_tokens = entry.outstanding_tokens.is_empty(); // Can we remove this file? let do_remove = !is_valid && no_outstanding_tokens; if let FileImpl::Sliced(ref parent_id, _) = entry.file_impl { - (do_remove, Some(parent_id.clone())) + (do_remove, Some(*parent_id)) } else { (do_remove, None) } @@ -867,13 +860,13 @@ impl FileManagerStore { let zero_refs = entry.refs.load(Ordering::Acquire) == 0; // Check if no fetch has acquired a token for this file. - let no_outstanding_tokens = entry.outstanding_tokens.len() == 0; + let no_outstanding_tokens = entry.outstanding_tokens.is_empty(); // Can we remove this file? let do_remove = zero_refs && no_outstanding_tokens; if let FileImpl::Sliced(ref parent_id, _) = entry.file_impl { - (do_remove, Some(parent_id.clone()), Ok(())) + (do_remove, Some(*parent_id), Ok(())) } else { (do_remove, None, Ok(())) } @@ -913,7 +906,7 @@ fn read_file_in_chunks( buf.truncate(n); let blob_buf = BlobBuf { filename: opt_filename, - type_string: type_string, + type_string, size: size as u64, bytes: buf, }; |