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}