aboutsummaryrefslogtreecommitdiff
path: root/src/bytes.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bytes.rs')
-rw-r--r--src/bytes.rs15
1 files changed, 2 insertions, 13 deletions
diff --git a/src/bytes.rs b/src/bytes.rs
index 4e7a3e5..0f2ee3a 100644
--- a/src/bytes.rs
+++ b/src/bytes.rs
@@ -1104,25 +1104,14 @@ unsafe fn release_shared(ptr: *mut Shared) {
Box::from_raw(ptr);
}
-#[cfg(miri)]
fn ptr_map<F>(ptr: *mut u8, f: F) -> *mut u8
where
F: FnOnce(usize) -> usize,
{
let old_addr = ptr as usize;
let new_addr = f(old_addr);
- let diff = new_addr.wrapping_sub(old_addr);
- ptr.wrapping_add(diff)
-}
-
-#[cfg(not(miri))]
-fn ptr_map<F>(ptr: *mut u8, f: F) -> *mut u8
-where
- F: FnOnce(usize) -> usize,
-{
- let old_addr = ptr as usize;
- let new_addr = f(old_addr);
- new_addr as *mut u8
+ // this optimizes better than `ptr.wrapping_add(new_addr.wrapping_sub(old_addr))`
+ ptr.wrapping_sub(old_addr).wrapping_add(new_addr)
}
// compile-fails