diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynamics/joint/generic_joint.rs | 4 | ||||
| -rw-r--r-- | src/geometry/interaction_graph.rs | 8 | ||||
| -rw-r--r-- | src/geometry/mesh_converter.rs | 2 |
3 files changed, 9 insertions, 5 deletions
diff --git a/src/dynamics/joint/generic_joint.rs b/src/dynamics/joint/generic_joint.rs index 2651592..154c439 100644 --- a/src/dynamics/joint/generic_joint.rs +++ b/src/dynamics/joint/generic_joint.rs @@ -524,7 +524,7 @@ macro_rules! joint_conversion_methods( if self.locked_axes == $axes { // SAFETY: this is OK because the target joint type is // a `repr(transparent)` newtype of `Joint`. - Some(unsafe { std::mem::transmute(self) }) + Some(unsafe { std::mem::transmute::<&Self, &$Joint>(self) }) } else { None } @@ -536,7 +536,7 @@ macro_rules! joint_conversion_methods( if self.locked_axes == $axes { // SAFETY: this is OK because the target joint type is // a `repr(transparent)` newtype of `Joint`. - Some(unsafe { std::mem::transmute(self) }) + Some(unsafe { std::mem::transmute::<&mut Self, &mut $Joint>(self) }) } else { None } diff --git a/src/geometry/interaction_graph.rs b/src/geometry/interaction_graph.rs index b535fa5..a237a69 100644 --- a/src/geometry/interaction_graph.rs +++ b/src/geometry/interaction_graph.rs @@ -232,7 +232,9 @@ impl<'a, N: Copy, E> Iterator for InteractionsWithMut<'a, N, E> { let endpoints = self.graph.edge_endpoints(edge).unwrap(); let (co1, co2) = (self.graph[endpoints.0], self.graph[endpoints.1]); let interaction = &mut self.graph[edge]; - return Some((co1, co2, edge, unsafe { std::mem::transmute(interaction) })); + return Some((co1, co2, edge, unsafe { + std::mem::transmute::<&mut E, &'a mut E>(interaction) + })); } let edge = self.outgoing_edge?; @@ -240,6 +242,8 @@ impl<'a, N: Copy, E> Iterator for InteractionsWithMut<'a, N, E> { let endpoints = self.graph.edge_endpoints(edge).unwrap(); let (co1, co2) = (self.graph[endpoints.0], self.graph[endpoints.1]); let interaction = &mut self.graph[edge]; - Some((co1, co2, edge, unsafe { std::mem::transmute(interaction) })) + Some((co1, co2, edge, unsafe { + std::mem::transmute::<&mut E, &'a mut E>(interaction) + })) } } diff --git a/src/geometry/mesh_converter.rs b/src/geometry/mesh_converter.rs index 5d47f79..a4c8861 100644 --- a/src/geometry/mesh_converter.rs +++ b/src/geometry/mesh_converter.rs @@ -84,7 +84,7 @@ impl MeshConverter { } #[cfg(feature = "dim3")] MeshConverter::ConvexDecompositionWithParams(params) => { - SharedShape::convex_decomposition_with_params(&vertices, &indices, ¶ms) + SharedShape::convex_decomposition_with_params(&vertices, &indices, params) } }; Ok((shape, transform)) |
