mirror of
https://github.com/bevyengine/bevy
synced 2024-11-21 20:23:28 +00:00
Enable clippy::ref_as_ptr
(#12918)
# Objective
-
[`clippy::ref_as_ptr`](https://rust-lang.github.io/rust-clippy/master/index.html#/ref_as_ptr)
prevents you from directly casting references to pointers, requiring you
to use `std::ptr::from_ref` instead. This prevents you from accidentally
converting an immutable reference into a mutable pointer (`&x as *mut
T`).
- Follow up to #11818, now that our [`rust-version` is
1.77](11817f4ba4/Cargo.toml (L14)
).
## Solution
- Enable lint and fix all warnings.
This commit is contained in:
parent
d59b1e71ef
commit
5c3ae32ab1
3 changed files with 7 additions and 6 deletions
|
@ -41,8 +41,7 @@ semicolon_if_nothing_returned = "warn"
|
|||
|
||||
ptr_as_ptr = "warn"
|
||||
ptr_cast_constness = "warn"
|
||||
#TODO(rust 1.77): enable `ref_as_ptr`
|
||||
# ref_as_ptr = "warn"
|
||||
ref_as_ptr = "warn"
|
||||
|
||||
[workspace.lints.rust]
|
||||
unsafe_op_in_unsafe_fn = "warn"
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
unsafe_code
|
||||
)]
|
||||
|
||||
use std::ptr::null_mut;
|
||||
use std::ptr::{self, null_mut};
|
||||
|
||||
use glam::Vec3;
|
||||
|
||||
|
@ -830,7 +830,7 @@ unsafe fn Build4RuleGroups(
|
|||
let mut neigh_indexR: i32 = 0;
|
||||
let vert_index: i32 = *piTriListIn.offset((f * 3i32 + i) as isize);
|
||||
let ref mut fresh2 = (*pTriInfos.offset(f as isize)).AssignedGroup[i as usize];
|
||||
*fresh2 = &mut *pGroups.offset(iNrActiveGroups as isize) as *mut SGroup;
|
||||
*fresh2 = ptr::from_mut(&mut *pGroups.offset(iNrActiveGroups as isize));
|
||||
(*(*pTriInfos.offset(f as isize)).AssignedGroup[i as usize])
|
||||
.iVertexRepresentative = vert_index;
|
||||
(*(*pTriInfos.offset(f as isize)).AssignedGroup[i as usize]).bOrientPreservering =
|
||||
|
@ -838,7 +838,7 @@ unsafe fn Build4RuleGroups(
|
|||
(*(*pTriInfos.offset(f as isize)).AssignedGroup[i as usize]).iNrFaces = 0i32;
|
||||
let ref mut fresh3 =
|
||||
(*(*pTriInfos.offset(f as isize)).AssignedGroup[i as usize]).pFaceIndices;
|
||||
*fresh3 = &mut *piGroupTrianglesBuffer.offset(iOffset as isize) as *mut i32;
|
||||
*fresh3 = ptr::from_mut(&mut *piGroupTrianglesBuffer.offset(iOffset as isize));
|
||||
iNrActiveGroups += 1;
|
||||
AddTriToGroup((*pTriInfos.offset(f as isize)).AssignedGroup[i as usize], f);
|
||||
bOrPre = if (*pTriInfos.offset(f as isize)).iFlag & 8i32 != 0i32 {
|
||||
|
|
|
@ -80,6 +80,8 @@ impl Eq for MeshVertexBufferLayoutRef {}
|
|||
|
||||
impl Hash for MeshVertexBufferLayoutRef {
|
||||
fn hash<H: Hasher>(&self, state: &mut H) {
|
||||
(&*self.0 as *const MeshVertexBufferLayout as usize).hash(state);
|
||||
// Hash the address of the underlying data, so two layouts that share the same
|
||||
// `MeshVertexBufferLayout` will have the same hash.
|
||||
(Arc::as_ptr(&self.0) as usize).hash(state);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue