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 | |
parent | 3c291678ad3af7ed23dd0ba311abf762fce62130 (diff) | |
download | servo-5324cabbf8757fa68b1aa36548b992041be94ef9.tar.gz servo-5324cabbf8757fa68b1aa36548b992041be94ef9.zip |
Appease the new borrow checker.
Diffstat (limited to 'src/servo-net')
-rw-r--r-- | src/servo-net/image_cache_task.rs | 31 | ||||
-rw-r--r-- | src/servo-net/local_image_cache.rs | 29 |
2 files changed, 22 insertions, 38 deletions
diff --git a/src/servo-net/image_cache_task.rs b/src/servo-net/image_cache_task.rs index 4a462cdc926..1b9d8415f61 100644 --- a/src/servo-net/image_cache_task.rs +++ b/src/servo-net/image_cache_task.rs @@ -373,20 +373,13 @@ impl ImageCache { } priv fn purge_waiters(&self, url: Url, f: &fn() -> ImageResponseMsg) { - match self.wait_map.find(&url) { - Some(waiters) => { - let waiters = *waiters; - let mut new_waiters = ~[]; - new_waiters <-> *waiters; - - for new_waiters.each |response| { - response.send(f()); + match self.wait_map.pop(&url) { + Some(waiters) => { + for waiters.each |response| { + response.send(f()); + } } - - *waiters <-> new_waiters; - self.wait_map.remove(&url); - } - None => () + None => () } } @@ -410,13 +403,11 @@ impl ImageCache { Prefetching(DoDecode) | Decoding => { // We don't have this image yet - match self.wait_map.find(&url) { - Some(waiters) => { - vec::push(*waiters, response); - } - None => { - self.wait_map.insert(url, @mut ~[response]); - } + if self.wait_map.contains_key(&url) { + let waiters = self.wait_map.find_mut(&url).unwrap(); + waiters.push(response); + } else { + self.wait_map.insert(url, @mut ~[response]); } } 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 } } } |