aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/context.rs
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <ecoal95@gmail.com>2016-11-16 11:57:39 +0100
committerEmilio Cobos Álvarez <ecoal95@gmail.com>2016-11-17 18:34:23 +0100
commit913c874cb55fd0fdc9e8f3a4c34624cd015fac8a (patch)
tree4526ecefafe0cde2f56cb1e2a4ebffd372e1f70a /components/layout/context.rs
parentf14e7339b5ff95fce0127dce4fe87ce082ab7259 (diff)
downloadservo-913c874cb55fd0fdc9e8f3a4c34624cd015fac8a.tar.gz
servo-913c874cb55fd0fdc9e8f3a4c34624cd015fac8a.zip
Urlmageddon: Use refcounted urls more often.
Diffstat (limited to 'components/layout/context.rs')
-rw-r--r--components/layout/context.rs16
1 files changed, 8 insertions, 8 deletions
diff --git a/components/layout/context.rs b/components/layout/context.rs
index 98e1ffe4092..cb5b9efb0ef 100644
--- a/components/layout/context.rs
+++ b/components/layout/context.rs
@@ -17,13 +17,13 @@ use net_traits::image::base::Image;
use net_traits::image_cache_thread::{ImageCacheChan, ImageCacheThread, ImageResponse, ImageState};
use net_traits::image_cache_thread::{ImageOrMetadataAvailable, UsePlaceholder};
use parking_lot::RwLock;
+use servo_url::ServoUrl;
use std::cell::{RefCell, RefMut};
use std::collections::HashMap;
use std::hash::BuildHasherDefault;
use std::rc::Rc;
use std::sync::{Arc, Mutex};
use style::context::{LocalStyleContext, StyleContext, SharedStyleContext};
-use url::Url;
use util::opts;
struct LocalLayoutContext {
@@ -83,7 +83,7 @@ pub struct SharedLayoutContext {
pub font_cache_thread: Mutex<FontCacheThread>,
/// A cache of WebRender image info.
- pub webrender_image_cache: Arc<RwLock<HashMap<(Url, UsePlaceholder),
+ pub webrender_image_cache: Arc<RwLock<HashMap<(ServoUrl, UsePlaceholder),
WebRenderImageInfo,
BuildHasherDefault<FnvHasher>>>>,
}
@@ -125,7 +125,7 @@ impl<'a> LayoutContext<'a> {
}
impl SharedLayoutContext {
- fn get_or_request_image_synchronously(&self, url: Url, use_placeholder: UsePlaceholder)
+ fn get_or_request_image_synchronously(&self, url: ServoUrl, use_placeholder: UsePlaceholder)
-> Option<Arc<Image>> {
debug_assert!(opts::get().output_file.is_some() || opts::get().exit_after_load);
@@ -161,7 +161,7 @@ impl SharedLayoutContext {
}
}
- pub fn get_or_request_image_or_meta(&self, url: Url, use_placeholder: UsePlaceholder)
+ pub fn get_or_request_image_or_meta(&self, url: ServoUrl, use_placeholder: UsePlaceholder)
-> Option<ImageOrMetadataAvailable> {
// If we are emitting an output file, load the image synchronously.
if opts::get().output_file.is_some() || opts::get().exit_after_load {
@@ -190,23 +190,23 @@ impl SharedLayoutContext {
}
pub fn get_webrender_image_for_url(&self,
- url: &Url,
+ url: ServoUrl,
use_placeholder: UsePlaceholder)
-> Option<WebRenderImageInfo> {
if let Some(existing_webrender_image) = self.webrender_image_cache
.read()
- .get(&((*url).clone(), use_placeholder)) {
+ .get(&(url.clone(), use_placeholder)) {
return Some((*existing_webrender_image).clone())
}
- match self.get_or_request_image_or_meta((*url).clone(), use_placeholder) {
+ match self.get_or_request_image_or_meta(url.clone(), use_placeholder) {
Some(ImageOrMetadataAvailable::ImageAvailable(image)) => {
let image_info = WebRenderImageInfo::from_image(&*image);
if image_info.key.is_none() {
Some(image_info)
} else {
let mut webrender_image_cache = self.webrender_image_cache.write();
- webrender_image_cache.insert(((*url).clone(), use_placeholder),
+ webrender_image_cache.insert((url, use_placeholder),
image_info);
Some(image_info)
}