| 1924 | #endif |
| 1925 | |
| 1926 | static bool |
| 1927 | extent_purge_forced_impl(tsdn_t *tsdn, arena_t *arena, |
| 1928 | extent_hooks_t **r_extent_hooks, extent_t *extent, size_t offset, |
| 1929 | size_t length, bool growing_retained) { |
| 1930 | witness_assert_depth_to_rank(tsdn_witness_tsdp_get(tsdn), |
| 1931 | WITNESS_RANK_CORE, growing_retained ? 1 : 0); |
| 1932 | |
| 1933 | extent_hooks_assure_initialized(arena, r_extent_hooks); |
| 1934 | |
| 1935 | if ((*r_extent_hooks)->purge_forced == NULL) { |
| 1936 | return true; |
| 1937 | } |
| 1938 | if (*r_extent_hooks != &extent_hooks_default) { |
| 1939 | extent_hook_pre_reentrancy(tsdn, arena); |
| 1940 | } |
| 1941 | bool err = (*r_extent_hooks)->purge_forced(*r_extent_hooks, |
| 1942 | extent_base_get(extent), extent_size_get(extent), offset, length, |
| 1943 | arena_ind_get(arena)); |
| 1944 | if (*r_extent_hooks != &extent_hooks_default) { |
| 1945 | extent_hook_post_reentrancy(tsdn); |
| 1946 | } |
| 1947 | return err; |
| 1948 | } |
| 1949 | |
| 1950 | bool |
| 1951 | extent_purge_forced_wrapper(tsdn_t *tsdn, arena_t *arena, |
no test coverage detected