mirror of
https://github.com/servo/servo.git
synced 2025-06-16 12:24:29 +00:00
Cleanup some code in image_cache_task.rs.
This commit is contained in:
parent
7ba02bb11d
commit
7d44f7bf1e
1 changed files with 8 additions and 25 deletions
|
@ -253,13 +253,7 @@ impl ImageCache {
|
||||||
debug!("image_cache_task: started fetch for {:s}", url.serialize());
|
debug!("image_cache_task: started fetch for {:s}", url.serialize());
|
||||||
|
|
||||||
let image = load_image_data(url.clone(), resource_task.clone());
|
let image = load_image_data(url.clone(), resource_task.clone());
|
||||||
|
to_cache.send(StorePrefetchedImageData(url.clone(), image));
|
||||||
let result = if image.is_ok() {
|
|
||||||
Ok(image.unwrap())
|
|
||||||
} else {
|
|
||||||
Err(())
|
|
||||||
};
|
|
||||||
to_cache.send(StorePrefetchedImageData(url.clone(), result));
|
|
||||||
debug!("image_cache_task: ended fetch for {:s}", url.serialize());
|
debug!("image_cache_task: ended fetch for {:s}", url.serialize());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -321,11 +315,7 @@ impl ImageCache {
|
||||||
let url = url_clone;
|
let url = url_clone;
|
||||||
debug!("image_cache_task: started image decode for {:s}", url.serialize());
|
debug!("image_cache_task: started image decode for {:s}", url.serialize());
|
||||||
let image = load_from_memory(data.as_slice());
|
let image = load_from_memory(data.as_slice());
|
||||||
let image = if image.is_some() {
|
let image = image.map(|image| Arc::new(box image));
|
||||||
Some(Arc::new(box image.unwrap()))
|
|
||||||
} else {
|
|
||||||
None
|
|
||||||
};
|
|
||||||
to_cache.send(StoreImage(url.clone(), image));
|
to_cache.send(StoreImage(url.clone(), image));
|
||||||
debug!("image_cache_task: ended image decode for {:s}", url.serialize());
|
debug!("image_cache_task: ended image decode for {:s}", url.serialize());
|
||||||
});
|
});
|
||||||
|
@ -384,7 +374,7 @@ impl ImageCache {
|
||||||
Prefetching(DoDecode) => response.send(ImageNotReady),
|
Prefetching(DoDecode) => response.send(ImageNotReady),
|
||||||
Prefetching(DoNotDecode) | Prefetched(..) => fail!("request for image before decode"),
|
Prefetching(DoNotDecode) | Prefetched(..) => fail!("request for image before decode"),
|
||||||
Decoding => response.send(ImageNotReady),
|
Decoding => response.send(ImageNotReady),
|
||||||
Decoded(image) => response.send(ImageReady(image.clone())),
|
Decoded(image) => response.send(ImageReady(image)),
|
||||||
Failed => response.send(ImageFailed),
|
Failed => response.send(ImageFailed),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -397,20 +387,13 @@ impl ImageCache {
|
||||||
|
|
||||||
Prefetching(DoDecode) | Decoding => {
|
Prefetching(DoDecode) | Decoding => {
|
||||||
// We don't have this image yet
|
// We don't have this image yet
|
||||||
if self.wait_map.contains_key(&url) {
|
self.wait_map.find_with_or_insert_with(url, response,
|
||||||
let waiters = self.wait_map.find_mut(&url).unwrap();
|
|_, waiters, response| waiters.lock().push(response),
|
||||||
let mut response = Some(response);
|
|_, response| Arc::new(Mutex::new(vec!(response))));
|
||||||
let mut items = waiters.lock();
|
|
||||||
items.push(response.take().unwrap());
|
|
||||||
} else {
|
|
||||||
let response = vec!(response);
|
|
||||||
let wrapped = Arc::new(Mutex::new(response));
|
|
||||||
self.wait_map.insert(url, wrapped);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Decoded(image) => {
|
Decoded(image) => {
|
||||||
response.send(ImageReady(image.clone()));
|
response.send(ImageReady(image));
|
||||||
}
|
}
|
||||||
|
|
||||||
Failed => {
|
Failed => {
|
||||||
|
@ -467,7 +450,7 @@ fn load_image_data(url: Url, resource_task: ResourceTask) -> Result<Vec<u8>, ()>
|
||||||
image_data.push_all(data.as_slice());
|
image_data.push_all(data.as_slice());
|
||||||
}
|
}
|
||||||
resource_task::Done(result::Ok(..)) => {
|
resource_task::Done(result::Ok(..)) => {
|
||||||
return Ok(image_data.into_iter().collect());
|
return Ok(image_data);
|
||||||
}
|
}
|
||||||
resource_task::Done(result::Err(..)) => {
|
resource_task::Done(result::Err(..)) => {
|
||||||
return Err(());
|
return Err(());
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue