[TSan, NFC] Eliminate useless calculations in TSan (#145283)
Previously, TSan repeatedly calculated some values in some cases, and this change eliminates these duplicate calculations.
This commit is contained in:
@@ -624,6 +624,7 @@ void MapShadow(uptr addr, uptr size) {
|
||||
static uptr mapped_meta_end = 0;
|
||||
uptr meta_begin = (uptr)MemToMeta(addr);
|
||||
uptr meta_end = (uptr)MemToMeta(addr + size);
|
||||
// Windows wants 64K alignment.
|
||||
meta_begin = RoundDownTo(meta_begin, 64 << 10);
|
||||
meta_end = RoundUpTo(meta_end, 64 << 10);
|
||||
if (!data_mapped) {
|
||||
@@ -634,9 +635,6 @@ void MapShadow(uptr addr, uptr size) {
|
||||
Die();
|
||||
} else {
|
||||
// Mapping continuous heap.
|
||||
// Windows wants 64K alignment.
|
||||
meta_begin = RoundDownTo(meta_begin, 64 << 10);
|
||||
meta_end = RoundUpTo(meta_end, 64 << 10);
|
||||
CHECK_GT(meta_end, mapped_meta_end);
|
||||
if (meta_begin < mapped_meta_end)
|
||||
meta_begin = mapped_meta_end;
|
||||
|
||||
@@ -247,11 +247,14 @@ void MetaMap::MoveMemory(uptr src, uptr dst, uptr sz) {
|
||||
CHECK_NE(src, dst);
|
||||
CHECK_NE(sz, 0);
|
||||
uptr diff = dst - src;
|
||||
u32 *src_meta = MemToMeta(src);
|
||||
u32 *dst_meta = MemToMeta(dst);
|
||||
u32 *src_meta_end = MemToMeta(src + sz);
|
||||
uptr inc = 1;
|
||||
if (dst > src) {
|
||||
u32 *src_meta, *dst_meta, *src_meta_end;
|
||||
uptr inc;
|
||||
if (dst < src) {
|
||||
src_meta = MemToMeta(src);
|
||||
dst_meta = MemToMeta(dst);
|
||||
src_meta_end = MemToMeta(src + sz);
|
||||
inc = 1;
|
||||
} else {
|
||||
src_meta = MemToMeta(src + sz) - 1;
|
||||
dst_meta = MemToMeta(dst + sz) - 1;
|
||||
src_meta_end = MemToMeta(src) - 1;
|
||||
|
||||
Reference in New Issue
Block a user