diff options
author | Ms2ger <Ms2ger@gmail.com> | 2016-10-13 13:39:42 +0200 |
---|---|---|
committer | Ms2ger <Ms2ger@gmail.com> | 2016-10-14 11:30:08 +0200 |
commit | d82038775807faf3dcce7ec72e1f0d5213105888 (patch) | |
tree | 6cc84455d14aaeff55c3d3f49f83782b2ecba70b /components | |
parent | 53b6343f3c2bb54bf2f541d88efcb4ce47e4eb7a (diff) | |
download | servo-d82038775807faf3dcce7ec72e1f0d5213105888.tar.gz servo-d82038775807faf3dcce7ec72e1f0d5213105888.zip |
Stop wrapping FileManager in an Arc.
It already contains an Arc internally.
Diffstat (limited to 'components')
-rw-r--r-- | components/net/blob_loader.rs | 4 | ||||
-rw-r--r-- | components/net/filemanager_thread.rs | 9 | ||||
-rw-r--r-- | components/net/resource_thread.rs | 4 |
3 files changed, 13 insertions, 4 deletions
diff --git a/components/net/blob_loader.rs b/components/net/blob_loader.rs index 1bf931dac32..bb9537e48dd 100644 --- a/components/net/blob_loader.rs +++ b/components/net/blob_loader.rs @@ -23,7 +23,7 @@ use util::thread::spawn_named; // TODO: Check on GET // https://w3c.github.io/FileAPI/#requestResponseModel -pub fn factory<UI: 'static + UIProvider>(filemanager: Arc<FileManager<UI>>) +pub fn factory<UI: 'static + UIProvider>(filemanager: FileManager<UI>) -> Box<FnBox(LoadData, LoadConsumer, Arc<MimeClassifier>, CancellationListener) + Send> { box move |load_data: LoadData, start_chan, classifier, cancel_listener| { spawn_named(format!("blob loader for {}", load_data.url), move || { @@ -35,7 +35,7 @@ pub fn factory<UI: 'static + UIProvider>(filemanager: Arc<FileManager<UI>>) fn load_blob<UI: 'static + UIProvider> (load_data: LoadData, start_chan: LoadConsumer, classifier: Arc<MimeClassifier>, - filemanager: Arc<FileManager<UI>>, + filemanager: FileManager<UI>, cancel_listener: CancellationListener) { let (chan, recv) = ipc::channel().unwrap(); if let Ok((id, origin, _fragment)) = parse_blob_url(&load_data.url.clone()) { diff --git a/components/net/filemanager_thread.rs b/components/net/filemanager_thread.rs index ac8ad70d1bc..d682ea02569 100644 --- a/components/net/filemanager_thread.rs +++ b/components/net/filemanager_thread.rs @@ -116,6 +116,15 @@ pub struct FileManager<UI: 'static + UIProvider> { store: Arc<FileManagerStore<UI>>, } +// Not derived to avoid an unnecessary `UI: Clone` bound. +impl<UI: 'static + UIProvider> Clone for FileManager<UI> { + fn clone(&self) -> Self { + FileManager { + store: self.store.clone(), + } + } +} + impl<UI: 'static + UIProvider> FileManager<UI> { pub fn new(ui: &'static UI) -> FileManager<UI> { FileManager { diff --git a/components/net/resource_thread.rs b/components/net/resource_thread.rs index 86e382e4bb3..6f596684408 100644 --- a/components/net/resource_thread.rs +++ b/components/net/resource_thread.rs @@ -475,7 +475,7 @@ pub struct CoreResourceManager { devtools_chan: Option<Sender<DevtoolsControlMsg>>, swmanager_chan: Option<IpcSender<CustomResponseMediator>>, profiler_chan: ProfilerChan, - filemanager: Arc<FileManager<TFDProvider>>, + filemanager: FileManager<TFDProvider>, cancel_load_map: HashMap<ResourceId, Sender<()>>, next_resource_id: ResourceId, } @@ -490,7 +490,7 @@ impl CoreResourceManager { devtools_chan: devtools_channel, swmanager_chan: None, profiler_chan: profiler_chan, - filemanager: Arc::new(FileManager::new(TFD_PROVIDER)), + filemanager: FileManager::new(TFD_PROVIDER), cancel_load_map: HashMap::new(), next_resource_id: ResourceId(0), } |