30 auto* node = &*
list.pop_front();
32 return static_cast<void*
>(node);
38 list.push_front(*node);
58 static auto the() -> Heap&;
66 constexpr static auto block_sizes =
di::Array {
72 constexpr static auto block_size_count = block_sizes.
size();
75 for (
auto i = 0ZU; i < block_size_count; ++i) {
76 auto [block_size, block_align] = block_sizes[i];
77 if (
size <= block_size && align <= block_align) {
#define ASSERT
Definition assert_bool.h:16
Definition forward_list_node.h:9
Definition forward_list_forward_declaration.h:12
Definition list_forward_declaration.h:12
Definition synchronized.h:17
Definition optional_forward_declaration.h:5
Definition tuple_forward_declaration.h:5
void deallocate(void *pointer, usize size, usize align)
Definition allocate.cpp:99
auto allocate(usize size, usize align) -> di::Result< di::AllocationResult<> >
Definition allocate.cpp:75
static auto the() -> Heap &
Definition allocate.cpp:70
auto allocate(usize size, usize align) -> di::Result< di::AllocationResult<> >
Definition allocate.cpp:44
void deallocate(void *pointer)
Definition allocate.cpp:65
constexpr usize size
Definition gfx_test.cpp:24
size_t usize
Definition integers.h:33
Expected< T, Error > Result
Definition result.h:8
constexpr auto destroy_at
Definition destroy_at.h:24
constexpr auto construct_at
Definition construct_at.h:27
Definition in_place_type.h:5
Definition span_fixed_size.h:37
constexpr auto size() const
Definition array.h:85
di::IntrusiveForwardList< FreeListNode > list
Definition allocate.h:41
void add_node(void *pointer)
Definition allocate.h:35
auto take_node() -> void *
Definition allocate.h:27
static constexpr auto is_sized(di::InPlaceType< U >) -> bool
Definition allocate.h:19