| 480 | |
| 481 | |
| 482 | void mi_decl_noinline _mi_free_generic(const mi_segment_t* segment, mi_page_t* page, bool is_local, void* p) mi_attr_noexcept { |
| 483 | mi_block_t* const block = (mi_page_has_aligned(page) ? _mi_page_ptr_unalign(segment, page, p) : (mi_block_t*)p); |
| 484 | mi_stat_free(page, block); // stat_free may access the padding |
| 485 | mi_track_free(p); |
| 486 | _mi_free_block(page, is_local, block); |
| 487 | } |
| 488 | |
| 489 | // Get the segment data belonging to a pointer |
| 490 | // This is just a single `and` in assembly but does further checks in debug mode |
no test coverage detected