mirror of
https://gitlab.com/artofrev/smallint.git
synced 2024-12-04 17:11:38 -05:00
drop refixed
This commit is contained in:
parent
a5620cdda9
commit
8718d65f90
|
@ -44,10 +44,8 @@ impl Drop for SmallInt {
|
|||
fn drop(&mut self) {
|
||||
if let Self::Heap((r, s)) = self {
|
||||
let size = usize::try_from(s.abs()).unwrap();
|
||||
let mut slice = unsafe { core::slice::from_raw_parts(r, size) };
|
||||
unsafe {
|
||||
core::ptr::drop_in_place(&mut slice);
|
||||
}
|
||||
let slice = unsafe { core::slice::from_raw_parts_mut(*r, size) };
|
||||
unsafe { std::mem::drop(Box::from_raw(slice)) }
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -96,7 +94,7 @@ impl From<u128> for SmallInt {
|
|||
while v != 0 {
|
||||
vec.push(v as u32);
|
||||
|
||||
v = (v >> 1) >> (32 - 1);
|
||||
v >>= 32;
|
||||
}
|
||||
let mut slice = ManuallyDrop::new(vec.into_boxed_slice());
|
||||
SmallInt::Heap((slice.as_mut_ptr(), isize::try_from(slice.len()).unwrap()))
|
||||
|
|
Loading…
Reference in New Issue
Block a user