mirror of
https://github.com/jemalloc/jemalloc.git
synced 2026-07-23 13:13:06 +00:00
Fix all optimization-inhibiting integer-to-pointer casts
Following from PR #2481, we replace all integer-to-pointer casts [which hide pointer provenance information (and thus inhibit optimizations)](https://clang.llvm.org/extra/clang-tidy/checks/performance/no-int-to-ptr.html) with equivalent operations that preserve this information. I have enabled the corresponding clang-tidy check in our static analysis CI so that we do not get bitten by this again in the future.
This commit is contained in:
committed by
Qi Wang
parent
4827bb17bd
commit
3e82f357bb
@@ -3446,7 +3446,7 @@ do_rallocx(void *ptr, size_t size, int flags, bool is_realloc) {
|
||||
if (config_fill && unlikely(opt_junk_alloc) && usize > old_usize
|
||||
&& !zero) {
|
||||
size_t excess_len = usize - old_usize;
|
||||
void *excess_start = (void *)((uintptr_t)p + old_usize);
|
||||
void *excess_start = (void *)((byte_t *)p + old_usize);
|
||||
junk_alloc_callback(excess_start, excess_len);
|
||||
}
|
||||
|
||||
@@ -3716,7 +3716,7 @@ je_xallocx(void *ptr, size_t size, size_t extra, int flags) {
|
||||
if (config_fill && unlikely(opt_junk_alloc) && usize > old_usize &&
|
||||
!zero) {
|
||||
size_t excess_len = usize - old_usize;
|
||||
void *excess_start = (void *)((uintptr_t)ptr + old_usize);
|
||||
void *excess_start = (void *)((byte_t *)ptr + old_usize);
|
||||
junk_alloc_callback(excess_start, excess_len);
|
||||
}
|
||||
label_not_resized:
|
||||
|
||||
Reference in New Issue
Block a user