fix is_in_same_page check

This commit is contained in:
daan 2020-09-06 15:09:51 -07:00
parent 3826132240
commit 953bbde089

View File

@ -585,7 +585,11 @@ static inline bool mi_is_in_same_segment(const void* p, const void* q) {
static inline bool mi_is_in_same_page(const void* p, const void* q) {
mi_segment_t* segment = _mi_ptr_segment(p);
if (_mi_ptr_segment(q) != segment) return false;
return (_mi_segment_page_of(segment, p) == _mi_segment_page_of(segment, q));
// assume q may be invalid // return (_mi_segment_page_of(segment, p) == _mi_segment_page_of(segment, q));
mi_page_t* page = _mi_segment_page_of(segment, p);
size_t psize;
uint8_t* start = _mi_segment_page_start(segment, page, &psize);
return (start <= (uint8_t*)q && (uint8_t*)q < start + psize);
}
static inline uintptr_t mi_rotl(uintptr_t x, uintptr_t shift) {