diff options
-rw-r--r-- | src/servo-gfx/font.rs | 2 | ||||
-rw-r--r-- | src/servo-gfx/font_list.rs | 5 | ||||
-rw-r--r-- | src/servo-gfx/platform/macos/font.rs | 16 | ||||
-rw-r--r-- | src/servo-gfx/platform/macos/font_list.rs | 6 | ||||
-rw-r--r-- | src/servo-net/image_cache_task.rs | 31 | ||||
-rw-r--r-- | src/servo-net/local_image_cache.rs | 29 |
6 files changed, 34 insertions, 55 deletions
diff --git a/src/servo-gfx/font.rs b/src/servo-gfx/font.rs index 2daae21e05e..9178d69351f 100644 --- a/src/servo-gfx/font.rs +++ b/src/servo-gfx/font.rs @@ -386,7 +386,7 @@ pub impl Font { advance += glyph.advance(); } let bounds = Rect(Point2D(Au(0), -self.metrics.ascent), - Size2D(advance, self.metrics.ascent + self.metrics.descent)); + Size2D(advance, self.metrics.ascent + self.metrics.descent)); // TODO(Issue #125): support loose and tight bounding boxes; using the // ascent+descent and advance is sometimes too generous and diff --git a/src/servo-gfx/font_list.rs b/src/servo-gfx/font_list.rs index f014546c520..a67bf8dd951 100644 --- a/src/servo-gfx/font_list.rs +++ b/src/servo-gfx/font_list.rs @@ -96,10 +96,9 @@ impl FontFamily { } fn load_family_variations(@mut self, list: &FontListHandle) { - let this : &mut FontFamily = self; // FIXME: borrow checker workaround - if this.entries.len() > 0 { return; } + if self.entries.len() > 0 { return; } list.load_variations_for_family(self); - assert!(this.entries.len() > 0); + assert!(self.entries.len() > 0); } pub fn find_font_for_style(@mut self, list: &FontListHandle, style: &SpecifiedFontStyle) diff --git a/src/servo-gfx/platform/macos/font.rs b/src/servo-gfx/platform/macos/font.rs index 213bea408ac..dbdbc2a0324 100644 --- a/src/servo-gfx/platform/macos/font.rs +++ b/src/servo-gfx/platform/macos/font.rs @@ -16,7 +16,7 @@ use geometry::Au; use platform::macos::font_context::FontContextHandle; use text::glyph::GlyphIndex; -use core_foundation::base::{CFIndex, CFWrapper}; +use core_foundation::base::CFIndex; use core_foundation::data::CFData; use core_foundation::string::UniChar; use core_graphics::data_provider::CGDataProvider; @@ -106,7 +106,7 @@ impl FontHandleMethods for FontHandle { fn boldness(&self) -> CSSFontWeight { // -1.0 to 1.0 - let normalized = unsafe { self.ctfont.all_traits().normalized_weight() }; + let normalized = self.ctfont.all_traits().normalized_weight(); // 0.0 to 9.0 let normalized = (normalized + 1.0) / 2.0 * 9.0; if normalized < 1.0 { return FontWeight100; } @@ -146,13 +146,11 @@ impl FontHandleMethods for FontHandle { fn glyph_h_advance(&self, glyph: GlyphIndex) -> Option<FractionalPixel> { let glyphs = [glyph as CGGlyph]; - unsafe { - let advance = self.ctfont.get_advances_for_glyphs(kCTFontDefaultOrientation, - &glyphs[0], - ptr::null(), - 1); - return Some(advance as FractionalPixel); - } + let advance = self.ctfont.get_advances_for_glyphs(kCTFontDefaultOrientation, + &glyphs[0], + ptr::null(), + 1); + Some(advance as FractionalPixel) } fn get_metrics(&self) -> FontMetrics { diff --git a/src/servo-gfx/platform/macos/font_list.rs b/src/servo-gfx/platform/macos/font_list.rs index cdd4c7baeea..79698c1cdfd 100644 --- a/src/servo-gfx/platform/macos/font_list.rs +++ b/src/servo-gfx/platform/macos/font_list.rs @@ -42,11 +42,9 @@ pub impl FontListHandle { } fn load_variations_for_family(&self, family: @mut FontFamily) { - let fam: &mut FontFamily = family; // FIXME: borrow checker workaround - let family_name = &fam.family_name; - debug!("Looking for faces of family: %s", *family_name); + debug!("Looking for faces of family: %s", family.family_name); - let family_collection = core_text::font_collection::create_for_family(*family_name); + let family_collection = core_text::font_collection::create_for_family(family.family_name); for family_collection.get_descriptors().each |descref: &CTFontDescriptorRef| { let desc = CFWrapper::wrap_shared(*descref); let font = core_text::font::new_from_descriptor(&desc, 0.0); 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 } } } |