@@ -144,11 +144,9 @@ pub struct MutArraySlice<'parent, T:'parent> {
144
144
145
145
impl < ' parent , T > Array < T > for MutArraySlice < ' parent , T > {
146
146
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 ( ) ,
152
150
} ;
153
151
& info[ 1 ..]
154
152
}
@@ -195,11 +193,9 @@ impl<'parent, T> InternalArray<T> for MutArraySlice<'parent, T> {
195
193
fn raw_get < ' a > ( & ' a self , idx : usize , size : usize ) -> & ' a T {
196
194
let size = size * self . dimension_info ( ) [ 0 ] . len ;
197
195
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)
203
199
}
204
200
}
205
201
}
@@ -208,11 +204,9 @@ impl<'parent, T> InternalMutableArray<T> for MutArraySlice<'parent, T> {
208
204
fn raw_get_mut < ' a > ( & ' a mut self , idx : usize , size : usize ) -> & ' a mut T {
209
205
let size = size * self . dimension_info ( ) [ 0 ] . len ;
210
206
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)
216
210
}
217
211
}
218
212
}
0 commit comments