1
0
mirror of https://github.com/fafhrd91/actix-web synced 2024-11-27 17:52:56 +01:00

cleanup more code

This commit is contained in:
Nikolay Kim 2018-06-20 00:36:32 +06:00
parent a69c1e3de5
commit 311f0b23a9
4 changed files with 11 additions and 13 deletions

View File

@ -10,7 +10,7 @@ use std::{cmp, io};
#[cfg(unix)]
use std::os::unix::fs::MetadataExt;
use bytes::{BufMut, Bytes, BytesMut};
use bytes::Bytes;
use futures::{Async, Future, Poll, Stream};
use futures_cpupool::{CpuFuture, CpuPool};
use mime;
@ -439,14 +439,13 @@ impl Stream for ChunkedReadFile {
self.fut = Some(self.cpu_pool.spawn_fn(move || {
let max_bytes: usize;
max_bytes = cmp::min(size.saturating_sub(counter), 65_536) as usize;
let mut buf = BytesMut::from(Vec::with_capacity(max_bytes));
let mut buf = Vec::with_capacity(max_bytes);
file.seek(io::SeekFrom::Start(offset))?;
let nbytes = file.read(unsafe { buf.bytes_mut() })?;
let nbytes = file.read(buf.as_mut_slice())?;
if nbytes == 0 {
return Err(io::ErrorKind::UnexpectedEof.into());
}
unsafe { buf.advance_mut(nbytes) };
Ok((file, buf.freeze()))
Ok((file, Bytes::from(buf)))
}));
self.poll()
}

View File

@ -634,13 +634,11 @@ mod tests {
assert!(req.chunked().unwrap());
let mut headers = HeaderMap::new();
let s = unsafe {
str::from_utf8_unchecked(b"some va\xadscc\xacas0xsdasdlue".as_ref())
};
let hdr = Bytes::from_static(b"some va\xadscc\xacas0xsdasdlue");
headers.insert(
header::TRANSFER_ENCODING,
header::HeaderValue::from_str(s).unwrap(),
header::HeaderValue::from_shared(hdr).unwrap(),
);
let req = HttpRequest::new(
Method::GET,

View File

@ -1,9 +1,8 @@
//! HTTP Request message related code.
#![cfg_attr(feature = "cargo-clippy", allow(transmute_ptr_to_ptr))]
use std::collections::HashMap;
use std::net::SocketAddr;
use std::rc::Rc;
use std::{cmp, fmt, io, mem, str};
use std::{cmp, fmt, io, str};
use bytes::Bytes;
use cookie::Cookie;
@ -446,13 +445,13 @@ impl<S> HttpRequest<S> {
/// access the matched value for that segment.
#[inline]
pub fn match_info(&self) -> &Params {
unsafe { mem::transmute(&self.as_ref().params) }
&self.as_ref().params
}
/// Get mutable reference to request's Params.
#[inline]
pub(crate) fn match_info_mut(&mut self) -> &mut Params {
unsafe { mem::transmute(&mut self.as_mut().params) }
&mut self.as_mut().params
}
/// Checks if a connection should be kept alive.

View File

@ -146,6 +146,8 @@ impl Quoter {
}
if let Some(data) = cloned {
// we get data from http::Uri, which does utf-8 checks already
// this code only decodes valid pct encoded values
Some(unsafe { Rc::new(String::from_utf8_unchecked(data)) })
} else {
None