src/dynarray.c
1#include "alba.h"
2
3#include <stdlib.h>
4
5void float_array_append(FloatArray* array, const float value)
6{
7 if (array->capacity < array->length + 1)
8 {
9 while (array->capacity < array->length + 1)
10 {
11 if (array->capacity == 0) array->capacity = 4;
12 array->capacity = array->capacity * 2;
13 }
14 array->data = reallocarray(array->data, array->capacity, sizeof(float));
15 }
16
17 array->data[array->length] = value;
18 array->length += 1;
19}
20
21void float_array_release(const FloatArray* array)
22{
23 free(array->data);
24}
25
26void float_array_clear(FloatArray* array)
27{
28 array->length = 0;
29}
30
31void uint32_array_append(Uint32Array* array, const uint32_t value)
32{
33 if (array->capacity < array->length + 1)
34 {
35 while (array->capacity < array->length + 1)
36 {
37 if (array->capacity == 0) array->capacity = 4;
38 array->capacity = array->capacity * 2;
39 }
40 array->data = reallocarray(array->data, array->capacity, sizeof(uint32_t));
41 }
42
43 array->data[array->length] = value;
44 array->length += 1;
45}
46
47void uint32_array_release(const Uint32Array* array)
48{
49 free(array->data);
50}
51
52void uint32_array_clear(Uint32Array* array)
53{
54 array->length = 0;
55}