From 9eb0399a9d506f5f421180fa00ee3eec61a3a41e Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Wed, 20 May 2020 09:47:21 +1000 Subject: [PATCH] Adjust the zero check in `RawVec::grow`. This was supposed to land as part of #72227. (I wish `git push` would abort when you have uncommited changes.) --- src/liballoc/raw_vec.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/liballoc/raw_vec.rs b/src/liballoc/raw_vec.rs index f348b5b69780b..2bd4733db420b 100644 --- a/src/liballoc/raw_vec.rs +++ b/src/liballoc/raw_vec.rs @@ -401,16 +401,15 @@ impl RawVec { needed_extra_capacity: usize, placement: ReallocPlacement, ) -> Result<(), TryReserveError> { + // This is ensured by the calling contexts. + debug_assert!(needed_extra_capacity > 0); + if mem::size_of::() == 0 { // Since we return a capacity of `usize::MAX` when `elem_size` is // 0, getting to here necessarily means the `RawVec` is overfull. return Err(CapacityOverflow); } - if needed_extra_capacity == 0 { - return Ok(()); - } - // Nothing we can really do about these checks, sadly. let required_cap = used_capacity.checked_add(needed_extra_capacity).ok_or(CapacityOverflow)?;