diff options
author | Jack Moffitt <jack@metajack.im> | 2013-05-10 13:52:31 -0600 |
---|---|---|
committer | Jack Moffitt <jack@metajack.im> | 2013-05-10 15:40:58 -0600 |
commit | 5324cabbf8757fa68b1aa36548b992041be94ef9 (patch) | |
tree | 300dab763fb2c90c0d9c74ff17ffd8670e412a69 /src/servo-net/local_image_cache.rs | |
parent | 3c291678ad3af7ed23dd0ba311abf762fce62130 (diff) | |
download | servo-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.rs | 29 |
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 } } } |