aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMs2ger <Ms2ger@gmail.com>2016-04-29 13:33:22 +0200
committerMs2ger <Ms2ger@gmail.com>2016-04-29 14:55:49 +0200
commit703d018f23c8b09e0e1a049613ae4132860c72fd (patch)
tree4c3c440b8c54993bcbe959d93817d09313017312
parent78ae9a5da0f8f3dc67c2d0a76507a54bd08b9fba (diff)
downloadservo-703d018f23c8b09e0e1a049613ae4132860c72fd.tar.gz
servo-703d018f23c8b09e0e1a049613ae4132860c72fd.zip
Avoid some clones.
-rw-r--r--components/script/document_loader.rs4
-rw-r--r--components/script/dom/document.rs2
-rw-r--r--components/script/dom/htmliframeelement.rs2
-rw-r--r--components/script/dom/servohtmlparser.rs4
-rw-r--r--components/script/script_thread.rs18
5 files changed, 13 insertions, 17 deletions
diff --git a/components/script/document_loader.rs b/components/script/document_loader.rs
index 5c835226a22..6032d91b440 100644
--- a/components/script/document_loader.rs
+++ b/components/script/document_loader.rs
@@ -146,8 +146,8 @@ impl DocumentLoader {
}
/// Mark an in-progress network request complete.
- pub fn finish_load(&mut self, load: LoadType) {
- let idx = self.blocking_loads.iter().position(|unfinished| *unfinished == load);
+ pub fn finish_load(&mut self, load: &LoadType) {
+ let idx = self.blocking_loads.iter().position(|unfinished| *unfinished == *load);
self.blocking_loads.remove(idx.expect(&format!("unknown completed load {:?}", load)));
}
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index 6e7f69636b5..a3da74213e3 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -1344,7 +1344,7 @@ impl Document {
// The parser might need the loader, so restrict the lifetime of the borrow.
{
let mut loader = self.loader.borrow_mut();
- loader.finish_load(load.clone());
+ loader.finish_load(&load);
}
if let LoadType::Script(_) = load {
diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs
index ad172fabb99..8036b1f6837 100644
--- a/components/script/dom/htmliframeelement.rs
+++ b/components/script/dom/htmliframeelement.rs
@@ -144,7 +144,7 @@ impl HTMLIFrameElement {
pub fn process_the_iframe_attributes(&self) {
let url = match self.get_url() {
- Some(url) => url.clone(),
+ Some(url) => url,
None => Url::parse("about:blank").unwrap(),
};
diff --git a/components/script/dom/servohtmlparser.rs b/components/script/dom/servohtmlparser.rs
index 4436d286aff..993d3f0c28d 100644
--- a/components/script/dom/servohtmlparser.rs
+++ b/components/script/dom/servohtmlparser.rs
@@ -93,8 +93,8 @@ impl AsyncResponseListener for ParserContext {
Err(_) => None,
};
let content_type = metadata.clone().and_then(|meta| meta.content_type);
- let parser = match ScriptThread::page_fetch_complete(self.id.clone(),
- self.subpage.clone(),
+ let parser = match ScriptThread::page_fetch_complete(&self.id,
+ self.subpage.as_ref(),
metadata) {
Some(parser) => parser,
None => return,
diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs
index c0753f897a7..a557238e99c 100644
--- a/components/script/script_thread.rs
+++ b/components/script/script_thread.rs
@@ -493,7 +493,7 @@ pub unsafe extern "C" fn shadow_check_callback(_cx: *mut JSContext,
}
impl ScriptThread {
- pub fn page_fetch_complete(id: PipelineId, subpage: Option<SubpageId>, metadata: Option<Metadata>)
+ pub fn page_fetch_complete(id: &PipelineId, subpage: Option<&SubpageId>, metadata: Option<Metadata>)
-> Option<ParserRoot> {
SCRIPT_THREAD_ROOT.with(|root| {
let script_thread = unsafe { &*root.borrow().unwrap() };
@@ -1122,8 +1122,7 @@ impl ScriptThread {
doc.mut_loader().inhibit_events();
// https://html.spec.whatwg.org/multipage/#the-end step 7
- let addr: Trusted<Document> = Trusted::new(doc);
- let handler = box DocumentProgressHandler::new(addr.clone());
+ let handler = box DocumentProgressHandler::new(Trusted::new(doc));
self.dom_manipulation_task_source.queue(DOMManipulationTask::DocumentProgress(handler)).unwrap();
let ConstellationChan(ref chan) = self.constellation_chan;
@@ -1285,10 +1284,10 @@ impl ScriptThread {
/// We have received notification that the response associated with a load has completed.
/// Kick off the document and frame tree creation process using the result.
- fn handle_page_fetch_complete(&self, id: PipelineId, subpage: Option<SubpageId>,
+ fn handle_page_fetch_complete(&self, id: &PipelineId, subpage: Option<&SubpageId>,
metadata: Option<Metadata>) -> Option<ParserRoot> {
let idx = self.incomplete_loads.borrow().iter().position(|load| {
- load.pipeline_id == id && load.parent_info.map(|info| info.1) == subpage
+ load.pipeline_id == *id && load.parent_info.as_ref().map(|info| &info.1) == subpage
});
// The matching in progress load structure may not exist if
// the pipeline exited before the page load completed.
@@ -1298,7 +1297,7 @@ impl ScriptThread {
metadata.map(|meta| self.load(meta, load))
}
None => {
- assert!(self.closed_pipelines.borrow().contains(&id));
+ assert!(self.closed_pipelines.borrow().contains(id));
None
}
}
@@ -1868,14 +1867,11 @@ impl ScriptThread {
let id = incomplete.pipeline_id.clone();
let subpage = incomplete.parent_info.clone().map(|p| p.1);
- let script_chan = self.chan.clone();
- let resource_thread = self.resource_thread.clone();
-
let context = Arc::new(Mutex::new(ParserContext::new(id, subpage, load_data.url.clone())));
let (action_sender, action_receiver) = ipc::channel().unwrap();
let listener = NetworkListener {
context: context,
- script_chan: script_chan.clone(),
+ script_chan: self.chan.clone(),
};
ROUTER.add_route(action_receiver.to_opaque(), box move |message| {
listener.notify(message.to().unwrap());
@@ -1888,7 +1884,7 @@ impl ScriptThread {
load_data.url = Url::parse("about:blank").unwrap();
}
- resource_thread.send(ControlMsg::Load(NetLoadData {
+ self.resource_thread.send(ControlMsg::Load(NetLoadData {
context: LoadContext::Browsing,
url: load_data.url,
method: load_data.method,