summaryrefslogtreecommitdiff
path: root/src/ipc/moves.c
blob: acd7085a2d00c5391137f8119b362787a8f4f686 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "ipc/moves.h"
#include <stdlib.h>

void ipc_moves_init(ipc_moves_t *moves) {
  moves->data = malloc(sizeof(ipc_move_t) * 50);
  moves->count = 0;
  moves->capacity = 50;
}

void ipc_moves_deinit(ipc_moves_t *moves) {
  free(moves->data);
}

void add_ipc_move(ipc_moves_t *moves, ipc_move_t move) {
  if (moves->count + 1 > moves->capacity) {
    moves->capacity += 50;
    moves->data = realloc(
      moves->data,
      moves->capacity * sizeof(ipc_move_t)
    );
  }
  moves->data[moves->count++] = move;
}