Make MutBuf::advance unsafe

Closes #38
This commit is contained in:
Carl Lerche
2015-12-03 19:57:08 -08:00
parent 01c1e05a91
commit 6b624b849a
6 changed files with 11 additions and 12 deletions
+1 -1
View File
@@ -329,7 +329,7 @@ impl MutBuf for MutByteBuf {
self.buf.remaining()
}
fn advance(&mut self, cnt: usize) {
unsafe fn advance(&mut self, cnt: usize) {
self.buf.advance(cnt)
}
+6 -7
View File
@@ -95,7 +95,7 @@ pub trait MutBuf : Sized {
fn remaining(&self) -> usize;
/// Advance the internal cursor of the MutBuf
fn advance(&mut self, cnt: usize);
unsafe fn advance(&mut self, cnt: usize);
/// Returns true iff there is any more space for bytes to be written
fn has_remaining(&self) -> bool {
@@ -143,9 +143,10 @@ pub trait MutBuf : Sized {
cnt);
off += cnt;
}
self.advance(cnt);
unsafe { self.advance(cnt); }
}
len
@@ -278,7 +279,7 @@ impl<'a, R: io::Read+'a> Source for &'a mut R {
break;
}
buf.advance(i);
unsafe { buf.advance(i); }
cnt += i;
}
@@ -338,7 +339,7 @@ impl MutBuf for Vec<u8> {
usize::MAX - self.len()
}
fn advance(&mut self, cnt: usize) {
unsafe fn advance(&mut self, cnt: usize) {
let len = self.len() + cnt;
if len > self.capacity() {
@@ -348,9 +349,7 @@ impl MutBuf for Vec<u8> {
self.reserve(cap - len);
}
unsafe {
self.set_len(len);
}
self.set_len(len);
}
unsafe fn mut_bytes(&mut self) -> &mut [u8] {
+1 -1
View File
@@ -199,7 +199,7 @@ impl MutBuf for RingBuf {
self.write_remaining()
}
fn advance(&mut self, cnt: usize) {
unsafe fn advance(&mut self, cnt: usize) {
self.advance_writer(cnt)
}
+1 -1
View File
@@ -48,7 +48,7 @@ impl<'a> MutBuf for MutSliceBuf<'a> {
self.bytes.len() - self.pos
}
fn advance(&mut self, mut cnt: usize) {
unsafe fn advance(&mut self, mut cnt: usize) {
cnt = cmp::min(cnt, self.remaining());
self.pos += cnt;
}
+1 -1
View File
@@ -71,7 +71,7 @@ impl<T: MutBuf> MutBuf for Take<T> {
&mut self.inner.mut_bytes()[..self.limit]
}
fn advance(&mut self, cnt: usize) {
unsafe fn advance(&mut self, cnt: usize) {
let cnt = cmp::min(cnt, self.limit);
self.limit -= cnt;
self.inner.advance(cnt);
+1 -1
View File
@@ -220,7 +220,7 @@ impl<'a> Source for &'a Bytes {
}
src.advance(l);
dst.advance(l);
unsafe { dst.advance(l); }
res += l;
}