mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Avoid some unnecessary Options in http_network_fetch.
This commit is contained in:
parent
f24be9ad51
commit
d9947cdf7b
1 changed files with 5 additions and 11 deletions
|
@ -1150,12 +1150,12 @@ fn http_network_fetch(request: Rc<Request>,
|
||||||
let res_body = response.body.clone();
|
let res_body = response.body.clone();
|
||||||
|
|
||||||
// We're about to spawn a thread to be waited on here
|
// We're about to spawn a thread to be waited on here
|
||||||
*done_chan = Some(channel());
|
let (done_sender, done_receiver) = channel();
|
||||||
|
*done_chan = Some((done_sender.clone(), done_receiver));
|
||||||
let meta = match response.metadata().expect("Response metadata should exist at this stage") {
|
let meta = match response.metadata().expect("Response metadata should exist at this stage") {
|
||||||
FetchMetadata::Unfiltered(m) => m,
|
FetchMetadata::Unfiltered(m) => m,
|
||||||
FetchMetadata::Filtered { unsafe_, .. } => unsafe_
|
FetchMetadata::Filtered { unsafe_, .. } => unsafe_
|
||||||
};
|
};
|
||||||
let done_sender = done_chan.as_ref().map(|ch| ch.0.clone());
|
|
||||||
let devtools_sender = context.devtools_chan.clone();
|
let devtools_sender = context.devtools_chan.clone();
|
||||||
let meta_status = meta.status.clone();
|
let meta_status = meta.status.clone();
|
||||||
let meta_headers = meta.headers.clone();
|
let meta_headers = meta.headers.clone();
|
||||||
|
@ -1185,9 +1185,7 @@ fn http_network_fetch(request: Rc<Request>,
|
||||||
Ok(Data::Payload(chunk)) => {
|
Ok(Data::Payload(chunk)) => {
|
||||||
if let ResponseBody::Receiving(ref mut body) = *res_body.lock().unwrap() {
|
if let ResponseBody::Receiving(ref mut body) = *res_body.lock().unwrap() {
|
||||||
body.extend_from_slice(&chunk);
|
body.extend_from_slice(&chunk);
|
||||||
if let Some(ref sender) = done_sender {
|
let _ = done_sender.send(Data::Payload(chunk));
|
||||||
let _ = sender.send(Data::Payload(chunk));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Ok(Data::Done) | Err(_) => {
|
Ok(Data::Done) | Err(_) => {
|
||||||
|
@ -1201,9 +1199,7 @@ fn http_network_fetch(request: Rc<Request>,
|
||||||
_ => empty_vec,
|
_ => empty_vec,
|
||||||
};
|
};
|
||||||
*res_body.lock().unwrap() = ResponseBody::Done(completed_body);
|
*res_body.lock().unwrap() = ResponseBody::Done(completed_body);
|
||||||
if let Some(ref sender) = done_sender {
|
let _ = done_sender.send(Data::Done);
|
||||||
let _ = sender.send(Data::Done);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1212,9 +1208,7 @@ fn http_network_fetch(request: Rc<Request>,
|
||||||
Err(_) => {
|
Err(_) => {
|
||||||
// XXXManishearth we should propagate this error somehow
|
// XXXManishearth we should propagate this error somehow
|
||||||
*res_body.lock().unwrap() = ResponseBody::Done(vec![]);
|
*res_body.lock().unwrap() = ResponseBody::Done(vec![]);
|
||||||
if let Some(ref sender) = done_sender {
|
let _ = done_sender.send(Data::Done);
|
||||||
let _ = sender.send(Data::Done);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue