code review fixes

This commit is contained in:
Saleem Jaffer 2019-07-31 18:14:49 +05:30
parent a1e59d17e3
commit c17d11fb39

View File

@ -235,17 +235,17 @@ impl<'tcx, Tag: Copy, Extra: AllocationExtra<Tag>> Allocation<Tag, Extra> {
{ {
assert_eq!(ptr.offset.bytes() as usize as u64, ptr.offset.bytes()); assert_eq!(ptr.offset.bytes() as usize as u64, ptr.offset.bytes());
let offset = ptr.offset.bytes() as usize; let offset = ptr.offset.bytes() as usize;
match self.bytes[offset..].iter().position(|&c| c == 0) { Ok(match self.bytes[offset..].iter().position(|&c| c == 0) {
Some(size) => { Some(size) => {
let size_with_null = Size::from_bytes((size + 1) as u64); let size_with_null = Size::from_bytes((size + 1) as u64);
// Go through `get_bytes` for checks and AllocationExtra hooks. // Go through `get_bytes` for checks and AllocationExtra hooks.
// We read the null, so we include it in the request, but we want it removed // We read the null, so we include it in the request, but we want it removed
// from the result, so we do subslicing. // from the result, so we do subslicing.
Ok(&self.get_bytes(cx, ptr, size_with_null)?[..size]) &self.get_bytes(cx, ptr, size_with_null)?[..size]
} }
// This includes the case where `offset` is out-of-bounds to begin with. // This includes the case where `offset` is out-of-bounds to begin with.
None => throw_unsup!(UnterminatedCString(ptr.erase_tag())), None => throw_unsup!(UnterminatedCString(ptr.erase_tag())),
} })
} }
/// Validates that `ptr.offset` and `ptr.offset + size` do not point to the middle of a /// Validates that `ptr.offset` and `ptr.offset + size` do not point to the middle of a