aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2015-10-15 16:44:39 -0700
committerEli Friedman <eli.friedman@gmail.com>2015-10-15 16:44:39 -0700
commitc1aff0b678d346e5f782e06a3e1e512128fa3f05 (patch)
tree2ec208eb639fcb891285a9c1a264128fb58d23c8
parent9d5f09e09c64d878e6c2bb273195c3c6ca9fe82c (diff)
downloadservo-c1aff0b678d346e5f782e06a3e1e512128fa3f05.tar.gz
servo-c1aff0b678d346e5f782e06a3e1e512128fa3f05.zip
Make AsyncResponseListener methods take `&mut self`.
-rw-r--r--components/net_traits/lib.rs8
-rw-r--r--components/script/cors.rs6
-rw-r--r--components/script/dom/htmlscriptelement.rs6
-rw-r--r--components/script/dom/servohtmlparser.rs6
-rw-r--r--components/script/dom/xmlhttprequest.rs6
-rw-r--r--components/script/network_listener.rs4
6 files changed, 18 insertions, 18 deletions
diff --git a/components/net_traits/lib.rs b/components/net_traits/lib.rs
index aa38d2a0a3f..c7b87534e85 100644
--- a/components/net_traits/lib.rs
+++ b/components/net_traits/lib.rs
@@ -163,13 +163,13 @@ pub trait AsyncFetchListener {
/// A listener for asynchronous network events. Cancelling the underlying request is unsupported.
pub trait AsyncResponseListener {
/// The response headers for a request have been received.
- fn headers_available(&self, metadata: Metadata);
+ fn headers_available(&mut self, metadata: Metadata);
/// A portion of the response body has been received. This data is unavailable after
/// this method returned, and must be stored accordingly.
- fn data_available(&self, payload: Vec<u8>);
+ fn data_available(&mut self, payload: Vec<u8>);
/// The response is complete. If the provided status is an Err value, there is no guarantee
/// that the response body was completely read.
- fn response_complete(&self, status: Result<(), String>);
+ fn response_complete(&mut self, status: Result<(), String>);
}
/// Data for passing between threads/processes to indicate a particular action to
@@ -186,7 +186,7 @@ pub enum ResponseAction {
impl ResponseAction {
/// Execute the default action on a provided listener.
- pub fn process(self, listener: &AsyncResponseListener) {
+ pub fn process(self, listener: &mut AsyncResponseListener) {
match self {
ResponseAction::HeadersAvailable(m) => listener.headers_available(m),
ResponseAction::DataAvailable(d) => listener.data_available(d),
diff --git a/components/script/cors.rs b/components/script/cors.rs
index 89ef23f1d92..31f5f2f9a22 100644
--- a/components/script/cors.rs
+++ b/components/script/cors.rs
@@ -112,13 +112,13 @@ impl CORSRequest {
// This is shoe-horning the CORSReponse stuff into the rest of the async network
// framework right now. It would be worth redesigning http_fetch to do this properly.
impl AsyncResponseListener for CORSContext {
- fn headers_available(&self, _metadata: Metadata) {
+ fn headers_available(&mut self, _metadata: Metadata) {
}
- fn data_available(&self, _payload: Vec<u8>) {
+ fn data_available(&mut self, _payload: Vec<u8>) {
}
- fn response_complete(&self, _status: Result<(), String>) {
+ fn response_complete(&mut self, _status: Result<(), String>) {
let response = self.response.borrow_mut().take().unwrap();
self.listener.response_available(response);
}
diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs
index 3c87e28b2be..99f681ebb1a 100644
--- a/components/script/dom/htmlscriptelement.rs
+++ b/components/script/dom/htmlscriptelement.rs
@@ -138,16 +138,16 @@ struct ScriptContext {
}
impl AsyncResponseListener for ScriptContext {
- fn headers_available(&self, metadata: Metadata) {
+ fn headers_available(&mut self, metadata: Metadata) {
*self.metadata.borrow_mut() = Some(metadata);
}
- fn data_available(&self, payload: Vec<u8>) {
+ fn data_available(&mut self, payload: Vec<u8>) {
let mut payload = payload;
self.data.borrow_mut().append(&mut payload);
}
- fn response_complete(&self, status: Result<(), String>) {
+ fn response_complete(&mut self, status: Result<(), String>) {
let load = status.map(|_| {
let data = mem::replace(&mut *self.data.borrow_mut(), vec!());
let metadata = self.metadata.borrow_mut().take().unwrap();
diff --git a/components/script/dom/servohtmlparser.rs b/components/script/dom/servohtmlparser.rs
index acea9113127..6600d97f12a 100644
--- a/components/script/dom/servohtmlparser.rs
+++ b/components/script/dom/servohtmlparser.rs
@@ -97,7 +97,7 @@ impl ParserContext {
}
impl AsyncResponseListener for ParserContext {
- fn headers_available(&self, metadata: Metadata) {
+ fn headers_available(&mut self, metadata: Metadata) {
let content_type = metadata.content_type.clone();
let parser = ScriptTask::page_fetch_complete(self.id.clone(), self.subpage.clone(),
@@ -137,7 +137,7 @@ impl AsyncResponseListener for ParserContext {
}
}
- fn data_available(&self, payload: Vec<u8>) {
+ fn data_available(&mut self, payload: Vec<u8>) {
if !self.is_image_document.get() {
// FIXME: use Vec<u8> (html5ever #34)
let data = UTF_8.decode(&payload, DecoderTrap::Replace).unwrap();
@@ -149,7 +149,7 @@ impl AsyncResponseListener for ParserContext {
}
}
- fn response_complete(&self, status: Result<(), String>) {
+ fn response_complete(&mut self, status: Result<(), String>) {
let parser = match self.parser.borrow().as_ref() {
Some(parser) => parser.root(),
None => return,
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs
index a98d3a2f818..3373865fa5f 100644
--- a/components/script/dom/xmlhttprequest.rs
+++ b/components/script/dom/xmlhttprequest.rs
@@ -237,7 +237,7 @@ impl XMLHttpRequest {
resource_task: ResourceTask,
load_data: LoadData) {
impl AsyncResponseListener for XHRContext {
- fn headers_available(&self, metadata: Metadata) {
+ fn headers_available(&mut self, metadata: Metadata) {
let xhr = self.xhr.root();
let rv = xhr.r().process_headers_available(self.cors_request.clone(),
self.gen_id,
@@ -247,13 +247,13 @@ impl XMLHttpRequest {
}
}
- fn data_available(&self, payload: Vec<u8>) {
+ fn data_available(&mut self, payload: Vec<u8>) {
self.buf.borrow_mut().push_all(&payload);
let xhr = self.xhr.root();
xhr.r().process_data_available(self.gen_id, self.buf.borrow().clone());
}
- fn response_complete(&self, status: Result<(), String>) {
+ fn response_complete(&mut self, status: Result<(), String>) {
let xhr = self.xhr.root();
let rv = xhr.r().process_response_complete(self.gen_id, status);
*self.sync_status.borrow_mut() = Some(rv);
diff --git a/components/script/network_listener.rs b/components/script/network_listener.rs
index cc242173241..d16517230bc 100644
--- a/components/script/network_listener.rs
+++ b/components/script/network_listener.rs
@@ -43,9 +43,9 @@ struct ListenerRunnable<T: AsyncResponseListener + PreInvoke + Send> {
impl<T: AsyncResponseListener + PreInvoke + Send> Runnable for ListenerRunnable<T> {
fn handler(self: Box<ListenerRunnable<T>>) {
let this = *self;
- let context = this.context.lock().unwrap();
+ let mut context = this.context.lock().unwrap();
if context.should_invoke() {
- this.action.process(&*context);
+ this.action.process(&mut *context);
}
}
}