aboutsummaryrefslogtreecommitdiffstats
path: root/src/servo-net/local_image_cache.rs
diff options
context:
space:
mode:
authorJack Moffitt <jack@metajack.im>2013-05-10 13:52:31 -0600
committerJack Moffitt <jack@metajack.im>2013-05-10 15:40:58 -0600
commit5324cabbf8757fa68b1aa36548b992041be94ef9 (patch)
tree300dab763fb2c90c0d9c74ff17ffd8670e412a69 /src/servo-net/local_image_cache.rs
parent3c291678ad3af7ed23dd0ba311abf762fce62130 (diff)
downloadservo-5324cabbf8757fa68b1aa36548b992041be94ef9.tar.gz
servo-5324cabbf8757fa68b1aa36548b992041be94ef9.zip
Appease the new borrow checker.
Diffstat (limited to 'src/servo-net/local_image_cache.rs')
-rw-r--r--src/servo-net/local_image_cache.rs29
1 files changed, 11 insertions, 18 deletions
diff --git a/src/servo-net/local_image_cache.rs b/src/servo-net/local_image_cache.rs
index 8df7f082bb7..eaa23d8e8de 100644
--- a/src/servo-net/local_image_cache.rs
+++ b/src/servo-net/local_image_cache.rs
@@ -76,12 +76,9 @@ pub impl LocalImageCache {
match state.last_response {
ImageReady(ref image) => {
- // FIXME: appease borrowck
- unsafe {
- let (port, chan) = comm::stream();
- chan.send(ImageReady(clone_arc(image)));
- return port;
- }
+ let (port, chan) = comm::stream();
+ chan.send(ImageReady(clone_arc(image)));
+ return port;
}
ImageNotReady => {
if last_round == self.round_number {
@@ -138,18 +135,14 @@ pub impl LocalImageCache {
}
priv fn get_state(&self, url: &Url) -> @mut ImageState {
- match self.state_map.find(url) {
- Some(state) => *state,
- None => {
- let new_state = @mut ImageState {
- prefetched: false,
- decoded: false,
- last_request_round: 0,
- last_response: ImageNotReady
- };
- self.state_map.insert(copy *url, new_state);
- self.get_state(url)
- }
+ *do self.state_map.find_or_insert_with(url.clone()) |_| {
+ let new_state = @mut ImageState {
+ prefetched: false,
+ decoded: false,
+ last_request_round: 0,
+ last_response: ImageNotReady
+ };
+ new_state
}
}
}