aboutsummaryrefslogtreecommitdiffstats
path: root/src/servo-net
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
parent3c291678ad3af7ed23dd0ba311abf762fce62130 (diff)
downloadservo-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.rs31
-rw-r--r--src/servo-net/local_image_cache.rs29
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
}
}
}