File tree Expand file tree Collapse file tree 1 file changed +13
-2
lines changed Expand file tree Collapse file tree 1 file changed +13
-2
lines changed Original file line number Diff line number Diff line change @@ -1104,14 +1104,25 @@ unsafe fn release_shared(ptr: *mut Shared) {
1104
1104
Box :: from_raw ( ptr) ;
1105
1105
}
1106
1106
1107
+ #[ cfg( miri) ]
1107
1108
fn ptr_map < F > ( ptr : * mut u8 , f : F ) -> * mut u8
1108
1109
where
1109
1110
F : FnOnce ( usize ) -> usize ,
1110
1111
{
1111
1112
let old_addr = ptr as usize ;
1112
1113
let new_addr = f ( old_addr) ;
1113
- // this optimizes better than `ptr.wrapping_add(new_addr.wrapping_sub(old_addr))`
1114
- ptr. wrapping_sub ( old_addr) . wrapping_add ( new_addr)
1114
+ let diff = new_addr. wrapping_sub ( old_addr) ;
1115
+ ptr. wrapping_add ( diff)
1116
+ }
1117
+
1118
+ #[ cfg( not( miri) ) ]
1119
+ fn ptr_map < F > ( ptr : * mut u8 , f : F ) -> * mut u8
1120
+ where
1121
+ F : FnOnce ( usize ) -> usize ,
1122
+ {
1123
+ let old_addr = ptr as usize ;
1124
+ let new_addr = f ( old_addr) ;
1125
+ new_addr as * mut u8
1115
1126
}
1116
1127
1117
1128
// compile-fails
You can’t perform that action at this time.
0 commit comments