mirror of
https://github.com/rust-lang/rust.git
synced 2025-06-22 12:37:32 +00:00
code review fixes
This commit is contained in:
parent
a1e59d17e3
commit
c17d11fb39
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user