summaryrefslogtreecommitdiff
path: root/rust/src/binaryview.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/src/binaryview.rs')
-rw-r--r--rust/src/binaryview.rs15
1 files changed, 4 insertions, 11 deletions
diff --git a/rust/src/binaryview.rs b/rust/src/binaryview.rs
index 5a4e270b..d3225758 100644
--- a/rust/src/binaryview.rs
+++ b/rust/src/binaryview.rs
@@ -225,18 +225,11 @@ pub trait BinaryViewExt: BinaryViewBase {
/// Reads up to `len` bytes from address `offset`
fn read_vec(&self, offset: u64, len: usize) -> Vec<u8> {
- let mut ret = Vec::with_capacity(len);
+ let mut ret = vec![0; len];
- unsafe {
- let res;
-
- {
- let dest_slice = ret.get_unchecked_mut(0..len);
- res = self.read(dest_slice, offset);
- }
-
- ret.set_len(res);
- }
+ let slice = ret.as_mut_slice();
+ let size = self.read(slice, offset);
+ ret.truncate(size);
ret
}