Skip to content

Commit 2aa45dc

Browse files
committed
Remove many transmute calls
1 parent 2f5b081 commit 2aa45dc

File tree

1 file changed

+9
-15
lines changed

1 file changed

+9
-15
lines changed

src/lib.rs

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -144,11 +144,9 @@ pub struct MutArraySlice<'parent, T:'parent> {
144144

145145
impl<'parent, T> Array<T> for MutArraySlice<'parent, T> {
146146
fn dimension_info<'a>(&'a self) -> &'a [DimensionInfo] {
147-
let info : &'a [DimensionInfo] = unsafe {
148-
match self.parent {
149-
MutArrayParent::Slice(ref p) => mem::transmute(p.dimension_info()),
150-
MutArrayParent::Base(ref p) => mem::transmute(p.dimension_info()),
151-
}
147+
let info : &'a [DimensionInfo] = match self.parent {
148+
MutArrayParent::Slice(ref p) => p.dimension_info(),
149+
MutArrayParent::Base(ref p) => p.dimension_info(),
152150
};
153151
&info[1..]
154152
}
@@ -195,11 +193,9 @@ impl<'parent, T> InternalArray<T> for MutArraySlice<'parent, T> {
195193
fn raw_get<'a>(&'a self, idx: usize, size: usize) -> &'a T {
196194
let size = size * self.dimension_info()[0].len;
197195
let idx = size * self.idx + idx;
198-
unsafe {
199-
match self.parent {
200-
MutArrayParent::Slice(ref p) => mem::transmute(p.raw_get(idx, size)),
201-
MutArrayParent::Base(ref p) => mem::transmute(p.raw_get(idx, size))
202-
}
196+
match self.parent {
197+
MutArrayParent::Slice(ref p) => p.raw_get(idx, size),
198+
MutArrayParent::Base(ref p) => p.raw_get(idx, size)
203199
}
204200
}
205201
}
@@ -208,11 +204,9 @@ impl<'parent, T> InternalMutableArray<T> for MutArraySlice<'parent, T> {
208204
fn raw_get_mut<'a>(&'a mut self, idx: usize, size: usize) -> &'a mut T {
209205
let size = size * self.dimension_info()[0].len;
210206
let idx = size * self.idx + idx;
211-
unsafe {
212-
match self.parent {
213-
MutArrayParent::Slice(ref mut p) => mem::transmute(p.raw_get_mut(idx, size)),
214-
MutArrayParent::Base(ref mut p) => mem::transmute(p.raw_get_mut(idx, size))
215-
}
207+
match self.parent {
208+
MutArrayParent::Slice(ref mut p) => p.raw_get_mut(idx, size),
209+
MutArrayParent::Base(ref mut p) => p.raw_get_mut(idx, size)
216210
}
217211
}
218212
}

0 commit comments

Comments
 (0)