diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2015-10-15 16:44:39 -0700 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2015-10-15 16:44:39 -0700 |
commit | c1aff0b678d346e5f782e06a3e1e512128fa3f05 (patch) | |
tree | 2ec208eb639fcb891285a9c1a264128fb58d23c8 | |
parent | 9d5f09e09c64d878e6c2bb273195c3c6ca9fe82c (diff) | |
download | servo-c1aff0b678d346e5f782e06a3e1e512128fa3f05.tar.gz servo-c1aff0b678d346e5f782e06a3e1e512128fa3f05.zip |
Make AsyncResponseListener methods take `&mut self`.
-rw-r--r-- | components/net_traits/lib.rs | 8 | ||||
-rw-r--r-- | components/script/cors.rs | 6 | ||||
-rw-r--r-- | components/script/dom/htmlscriptelement.rs | 6 | ||||
-rw-r--r-- | components/script/dom/servohtmlparser.rs | 6 | ||||
-rw-r--r-- | components/script/dom/xmlhttprequest.rs | 6 | ||||
-rw-r--r-- | components/script/network_listener.rs | 4 |
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); } } } |