Skip to content

Commit 03fb6d4

Browse files
committed
Fix clippy warnings
1 parent 2da71a0 commit 03fb6d4

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

src/util/address.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,14 @@ impl ObjectReference {
503503
NonZeroUsize::new(addr.0).map(ObjectReference)
504504
}
505505

506-
/// Like `from_raw_address`, but assume `addr` is not zero.
506+
/// Like `from_raw_address`, but assume `addr` is not zero. This can be used to elide a check
507+
/// against zero for performance-critical code.
508+
///
509+
/// # Safety
510+
///
511+
/// This method assumes `addr` is not zero. It should only be used in cases where we know at
512+
/// compile time that the input cannot be zero. For example, if we compute the address by
513+
/// adding a positive offset to a non-zero address, we know the result must not be zero.
507514
pub unsafe fn from_raw_address_unchecked(addr: Address) -> ObjectReference {
508515
debug_assert!(!addr.is_zero());
509516
ObjectReference(NonZeroUsize::new_unchecked(addr.0))

src/util/metadata/vo_bit/mod.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,7 @@ pub fn is_vo_bit_set<VM: VMBinding>(object: ObjectReference) -> bool {
100100
/// Check if an address can be turned directly into an object reference using the VO bit.
101101
/// If so, return `Some(object)`. Otherwise return `None`.
102102
pub fn is_vo_bit_set_for_addr<VM: VMBinding>(address: Address) -> Option<ObjectReference> {
103-
let Some(potential_object) = ObjectReference::from_raw_address(address) else {
104-
return None;
105-
};
103+
let potential_object = ObjectReference::from_raw_address(address)?;
106104

107105
let addr = potential_object.to_address::<VM>();
108106

@@ -126,9 +124,7 @@ pub fn is_vo_bit_set_for_addr<VM: VMBinding>(address: Address) -> Option<ObjectR
126124
///
127125
/// This is unsafe: check the comment on `side_metadata::load`
128126
pub unsafe fn is_vo_bit_set_unsafe<VM: VMBinding>(address: Address) -> Option<ObjectReference> {
129-
let Some(potential_object) = ObjectReference::from_raw_address(address) else {
130-
return None;
131-
};
127+
let potential_object = ObjectReference::from_raw_address(address)?;
132128

133129
let addr = potential_object.to_address::<VM>();
134130

0 commit comments

Comments
 (0)