summaryrefslogtreecommitdiffhomepage
path: root/src/3p/chibicc/strings.c
blob: 0538fefdbef971e8851384e256a1780f770e0029 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "chibicc.h"

void strarray_push(StringArray *arr, char *s) {
  if (!arr->data) {
    arr->data = calloc(8, sizeof(char *));
    arr->capacity = 8;
  }

  if (arr->capacity == arr->len) {
    arr->data = realloc(arr->data, sizeof(char *) * arr->capacity * 2);
    arr->capacity *= 2;
    for (int i = arr->len; i < arr->capacity; i++)
      arr->data[i] = NULL;
  }

  arr->data[arr->len++] = s;
}