mirror of
https://github.com/rust-embedded/heapless.git
synced 2025-10-01 22:40:31 +00:00
Merge pull request #195 from AfoHT/clone_drop_fix
Fix the clone drop issue
This commit is contained in:
commit
304cd02cd7
15
src/vec.rs
15
src/vec.rs
@ -680,10 +680,19 @@ where
|
|||||||
N: ArrayLength<T>,
|
N: ArrayLength<T>,
|
||||||
{
|
{
|
||||||
fn clone(&self) -> Self {
|
fn clone(&self) -> Self {
|
||||||
Self {
|
let mut vec = Vec::new();
|
||||||
vec: self.vec.clone(),
|
|
||||||
next: self.next,
|
if self.next < self.vec.len() {
|
||||||
|
let s = unsafe {
|
||||||
|
slice::from_raw_parts(
|
||||||
|
(self.vec.0.buffer.as_ptr() as *const T).add(self.next),
|
||||||
|
self.vec.len() - self.next,
|
||||||
|
)
|
||||||
|
};
|
||||||
|
vec.extend_from_slice(s).ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Self { vec, next: 0 }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user