Ensure member_buf / send_buf aren't used while taken
`is_empty()` wouldn't catch use-then-clear cases
- Id
- 4c4b684d9bfd19c4067758d7e0af313b9e165d8d
- Author
- Caio
- Commit time
- 2024-03-18T10:02:55+01:00
Modified src/lib.rs
// that we can keep reusing its already-allocated space.
let mut updates = mem::take(&mut self.member_buf);
self.apply_many(updates.drain(..), &mut runtime)?;
- debug_assert!(
- self.member_buf.is_empty(),
+ debug_assert_eq!(
+ 0,
+ self.member_buf.capacity(),
"member_buf modified while taken"
);
self.member_buf = updates;
.map_err(anyhow::Error::msg)
.map_err(Error::Encode)
{
+ debug_assert_eq!(0, self.send_buf.capacity(), "send_buf modified while taken");
self.send_buf = buf.into_inner();
return Err(err);
}
runtime.send_to(dst, &data);
// absorb the buf into send_buf so we can reuse its capacity
+ debug_assert_eq!(0, self.send_buf.capacity(), "send_buf modified while taken");
self.send_buf = data;
Ok(())
}