|
|
|
@ -227,10 +227,10 @@ impl<T> Iterator for RawValIter<T> {
|
|
|
|
|
unsafe {
|
|
|
|
|
let result = ptr::read(self.start);
|
|
|
|
|
self.start = if mem::size_of::<T>() == 0 {
|
|
|
|
|
(self.start as usize + 1) as *const _
|
|
|
|
|
} else {
|
|
|
|
|
self.start.offset(1)
|
|
|
|
|
};
|
|
|
|
|
(self.start as usize + 1) as *const _
|
|
|
|
|
} else {
|
|
|
|
|
self.start.offset(1)
|
|
|
|
|
};
|
|
|
|
|
Some(result)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -251,10 +251,10 @@ impl<T> DoubleEndedIterator for RawValIter<T> {
|
|
|
|
|
} else {
|
|
|
|
|
unsafe {
|
|
|
|
|
self.end = if mem::size_of::<T>() == 0 {
|
|
|
|
|
(self.end as usize - 1) as *const _
|
|
|
|
|
} else {
|
|
|
|
|
self.end.offset(-1)
|
|
|
|
|
};
|
|
|
|
|
(self.end as usize - 1) as *const _
|
|
|
|
|
} else {
|
|
|
|
|
self.end.offset(-1)
|
|
|
|
|
};
|
|
|
|
|
Some(ptr::read(self.end))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|