mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-05-06 23:39:31 +03:00
Merge branch 'dev3' into dev3-bin
This commit is contained in:
commit
1fcf0678cb
2 changed files with 3 additions and 4 deletions
|
@ -205,9 +205,8 @@ static inline size_t mi_ctz(size_t x) {
|
|||
#elif mi_has_builtinz(ctz)
|
||||
return (x!=0 ? (size_t)mi_builtinz(ctz)(x) : MI_SIZE_BITS);
|
||||
#elif defined(__GNUC__) && (MI_ARCH_X64 || MI_ARCH_X86)
|
||||
if (x==0) return MI_SIZE_BITS;
|
||||
size_t r;
|
||||
__asm ("bsf\t%1, %0" : "=r"(r) : "r"(x) : "cc");
|
||||
size_t r = MI_SIZE_BITS; // bsf leaves destination unmodified if the argument is 0 (see <https://github.com/llvm/llvm-project/pull/102885>)
|
||||
__asm ("bsf\t%1, %0" : "+r"(r) : "r"(x) : "cc");
|
||||
return r;
|
||||
#elif MI_HAS_FAST_POPCOUNT
|
||||
return (x!=0 ? (mi_popcount(x^(x-1))-1) : MI_SIZE_BITS);
|
||||
|
|
|
@ -789,7 +789,7 @@ static inline void mi_page_set_has_aligned(mi_page_t* page, bool has_aligned) {
|
|||
}
|
||||
|
||||
static inline void mi_page_set_heap(mi_page_t* page, mi_heap_t* heap) {
|
||||
mi_assert_internal(!mi_page_is_in_full(page));
|
||||
// mi_assert_internal(!mi_page_is_in_full(page)); // can happen when destroying pages on heap_destroy
|
||||
// only the aligned flag is retained (and in particular clear the abandoned-mapped flag).
|
||||
const mi_page_flags_t flags = (mi_page_has_aligned(page) ? MI_PAGE_HAS_ALIGNED : 0);
|
||||
const mi_threadid_t tid = (heap == NULL ? 0 : heap->tld->thread_id) | flags;
|
||||
|
|
Loading…
Add table
Reference in a new issue