mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-05-06 15:29:31 +03:00
fix is_in_same_page check
This commit is contained in:
parent
3826132240
commit
953bbde089
1 changed files with 5 additions and 1 deletions
|
@ -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) {
|
static inline bool mi_is_in_same_page(const void* p, const void* q) {
|
||||||
mi_segment_t* segment = _mi_ptr_segment(p);
|
mi_segment_t* segment = _mi_ptr_segment(p);
|
||||||
if (_mi_ptr_segment(q) != segment) return false;
|
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) {
|
static inline uintptr_t mi_rotl(uintptr_t x, uintptr_t shift) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue