From ed65f9abeb645a70f745294e373e09c72412df76 Mon Sep 17 00:00:00 2001 From: Ty Overby Date: Mon, 13 Mar 2017 09:24:38 -0700 Subject: [PATCH] call read_bytes iteratively inside of read_vec (#138) --- src/serde/reader.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/serde/reader.rs b/src/serde/reader.rs index 7c1c545..145c4c4 100644 --- a/src/serde/reader.rs +++ b/src/serde/reader.rs @@ -58,14 +58,13 @@ impl Deserializer { } fn read_vec(&mut self) -> Result> { - let len = try!(serde::Deserialize::deserialize(&mut *self)); - try!(self.read_bytes(len)); + let mut len: usize = try!(serde::Deserialize::deserialize(&mut *self)); let mut result = Vec::new(); - let mut len = len as usize; let mut off = 0; while len > 0 { let reserve = cmp::min(len, BLOCK_SIZE); + try!(self.read_bytes(reserve as u64)); unsafe { result.reserve(reserve); result.set_len(off + reserve);