| 277 | } |
| 278 | |
| 279 | static inline void |
| 280 | rtree_leaf_elm_slab_write(tsdn_t *tsdn, rtree_t *rtree, |
| 281 | rtree_leaf_elm_t *elm, bool slab) { |
| 282 | #ifdef RTREE_LEAF_COMPACT |
| 283 | uintptr_t old_bits = rtree_leaf_elm_bits_read(tsdn, rtree, elm, |
| 284 | true); |
| 285 | uintptr_t bits = ((uintptr_t)rtree_leaf_elm_bits_szind_get(old_bits) << |
| 286 | LG_VADDR) | ((uintptr_t)rtree_leaf_elm_bits_extent_get(old_bits) & |
| 287 | (((uintptr_t)0x1 << LG_VADDR) - 1)) | ((uintptr_t)slab); |
| 288 | atomic_store_p(&elm->le_bits, (void *)bits, ATOMIC_RELEASE); |
| 289 | #else |
| 290 | atomic_store_b(&elm->le_slab, slab, ATOMIC_RELEASE); |
| 291 | #endif |
| 292 | } |
| 293 | |
| 294 | static inline void |
| 295 | rtree_leaf_elm_write(tsdn_t *tsdn, rtree_t *rtree, |
no test coverage detected