Fixed potential UB

This commit is contained in:
Violeta Hernández 2021-06-17 19:51:00 -05:00
parent 38add0b00d
commit c5f240cc28

View File

@ -1,7 +1,7 @@
//! Abstract definition of a matrix data storage. //! Abstract definition of a matrix data storage.
use std::fmt::Debug; use std::fmt::Debug;
use std::mem; use std::ptr;
use crate::base::allocator::{Allocator, SameShapeC, SameShapeR}; use crate::base::allocator::{Allocator, SameShapeC, SameShapeR};
use crate::base::default_allocator::DefaultAllocator; use crate::base::default_allocator::DefaultAllocator;
@ -158,7 +158,7 @@ pub unsafe trait StorageMut<T: Scalar, R: Dim, C: Dim = U1>: Storage<T, R, C> {
let a = self.get_address_unchecked_linear_mut(i1); let a = self.get_address_unchecked_linear_mut(i1);
let b = self.get_address_unchecked_linear_mut(i2); let b = self.get_address_unchecked_linear_mut(i2);
mem::swap(&mut *a, &mut *b); ptr::swap(a, b);
} }
/// Swaps two elements without bound-checking. /// Swaps two elements without bound-checking.