collapsed arena -> allocatorinfo : math.h

This commit is contained in:
ed
2025-02-09 12:14:04 -05:00
parent 716f8a7f3f
commit 007614c4e6
+17 -31
View File
@@ -969,40 +969,26 @@ u32_from_rgba(Vec4F32 rgba)
void rng1s64_list_push (Arena* arena, Rng1S64List* list, Rng1S64 rng); void rng1s64_list_push (Arena* arena, Rng1S64List* list, Rng1S64 rng);
void rng1s64_list_alloc (AllocatorInfo ainfo, Rng1S64List* list, Rng1S64 rng); void rng1s64_list_alloc (AllocatorInfo ainfo, Rng1S64List* list, Rng1S64 rng);
Rng1S64Array rng1s64_array_from_list (Arena* arena, Rng1S64List* list); Rng1S64Array rng1s64_array_from_list_push (Arena* arena, Rng1S64List* list);
Rng1S64Array rng1s64_array_from_list_alloc(AllocatorInfo ainfo, Rng1S64List* list); Rng1S64Array rng1s64_array_from_list_alloc(AllocatorInfo ainfo, Rng1S64List* list);
inline void #define rng1s64_array_from_list(allocator, list, rng) \
rng1s64_list_push(Arena* arena, Rng1S64List* list, Rng1S64 rng) _Generic(allocator, \
{ Arena*: rng1s64_list_push, \
#if MD_DONT_MAP_ANREA_TO_ALLOCATOR_IMPL AllocatorInfo: rng1s64_list_alloc, \
Rng1S64Node* n = push_array(arena, Rng1S64Node, 1); default: METADESK_NO_RESOLVED_GENERIC_SELECTION \
memory_copy_struct(&n->v, &rng); ) MD_RESOLVED_FUNCTION_CALL(allocator, list, rng)
sll_queue_push(list->first, list->last, n);
list->count += 1;
#else
rng1s64_list_alloc(arena_allocator(arena), list, rng);
#endif
}
inline Rng1S64Array #define rng1s64_array_from_list(allocator, list) \
rng1s64_array_from_list(Arena* arena, Rng1S64List* list) _Generic(allocator, \
{ Arena*: rng1s64_array_from_list_push, \
#if MD_DONT_MAP_ANREA_TO_ALLOCATOR_IMPL AllocatorInfo: rng1s64_array_from_list_alloc, \
Rng1S64Array default: METADESK_NO_RESOLVED_GENERIC_SELECTION \
arr = {0}; ) MD_RESOLVED_FUNCTION_CALL(allocator, list)
arr.count = list->count;
arr.v = push_array_no_zero(arena, Rng1S64, arr.count);
U64 idx = 0; force_inline void rng1s64_list_push (Arena* arena, Rng1S64List* list, Rng1S64 rng) { rng1s64_list_alloc (arena_allocator(arena), list, rng); }
for (Rng1S64Node *n = list->first; n != 0; n = n->next) { force_inline Rng1S64Array rng1s64_array_from_list_push(Arena* arena, Rng1S64List* list) { return rng1s64_array_from_list_alloc(arena_allocator(arena), list); }
arr.v[idx] = n->v;
idx += 1;
}
return arr;
#else
return rng1s64_array_from_list_alloc(arena_allocator(arena), list);
#endif
}
inline void inline void
rng1s64_list_alloc(AllocatorInfo ainfo, Rng1S64List* list, Rng1S64 rng) { rng1s64_list_alloc(AllocatorInfo ainfo, Rng1S64List* list, Rng1S64 rng) {