Skip to content

Commit 5bdb2f0

Browse files
authored
perf(cookie): avoid cloning store and url on Poll::Pending in ResponseFuture::poll (#3084)
1 parent ffda263 commit 5bdb2f0

1 file changed

Lines changed: 4 additions & 5 deletions

File tree

src/cookie.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -277,14 +277,13 @@ pub(crate) mod service {
277277
type Output = Result<Response<ResBody>, S::Error>;
278278

279279
fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
280-
let cookie_store = self.cookie_store.clone();
281-
let url = self.url.clone();
282-
let res = ready!(self.project().future.as_mut().poll(cx)?);
280+
let this = self.project();
281+
let res = ready!(this.future.poll(cx)?);
283282

284-
if let Some(cookie_store) = cookie_store.as_ref() {
283+
if let Some(cookie_store) = this.cookie_store.as_ref() {
285284
let mut cookies = cookie::extract_response_cookie_headers(res.headers()).peekable();
286285
if cookies.peek().is_some() {
287-
cookie_store.set_cookies(&mut cookies, &url);
286+
cookie_store.set_cookies(&mut cookies, this.url);
288287
}
289288
}
290289
Poll::Ready(Ok(res))

0 commit comments

Comments
 (0)