| 1840 | } |
| 1841 | |
| 1842 | bool |
| 1843 | extent_decommit_wrapper(tsdn_t *tsdn, arena_t *arena, |
| 1844 | extent_hooks_t **r_extent_hooks, extent_t *extent, size_t offset, |
| 1845 | size_t length) { |
| 1846 | witness_assert_depth_to_rank(tsdn_witness_tsdp_get(tsdn), |
| 1847 | WITNESS_RANK_CORE, 0); |
| 1848 | |
| 1849 | extent_hooks_assure_initialized(arena, r_extent_hooks); |
| 1850 | |
| 1851 | if (*r_extent_hooks != &extent_hooks_default) { |
| 1852 | extent_hook_pre_reentrancy(tsdn, arena); |
| 1853 | } |
| 1854 | bool err = ((*r_extent_hooks)->decommit == NULL || |
| 1855 | (*r_extent_hooks)->decommit(*r_extent_hooks, |
| 1856 | extent_base_get(extent), extent_size_get(extent), offset, length, |
| 1857 | arena_ind_get(arena))); |
| 1858 | if (*r_extent_hooks != &extent_hooks_default) { |
| 1859 | extent_hook_post_reentrancy(tsdn); |
| 1860 | } |
| 1861 | extent_committed_set(extent, extent_committed_get(extent) && err); |
| 1862 | return err; |
| 1863 | } |
| 1864 | |
| 1865 | #ifdef PAGES_CAN_PURGE_LAZY |
| 1866 | static bool |
no test coverage detected