blob: c8f415d9877b08503d12e10e1bb0fe463c81e6f1 [file] [log] [blame]
Arnaldo Carvalho de Melo69aad6f2011-01-03 16:39:04 -02001#include "xyarray.h"
2#include "util.h"
Arnaldo Carvalho de Melo72f7c4d2017-04-19 19:06:30 -03003#include <stdlib.h>
4#include <string.h>
Arnaldo Carvalho de Melo69aad6f2011-01-03 16:39:04 -02005
6struct xyarray *xyarray__new(int xlen, int ylen, size_t entry_size)
7{
8 size_t row_size = ylen * entry_size;
9 struct xyarray *xy = zalloc(sizeof(*xy) + xlen * row_size);
10
11 if (xy != NULL) {
12 xy->entry_size = entry_size;
13 xy->row_size = row_size;
Jiri Olsab45f65e2015-06-14 10:19:16 +020014 xy->entries = xlen * ylen;
Andi Kleend74be472017-08-11 16:26:16 -070015 xy->max_x = xlen;
16 xy->max_y = ylen;
Arnaldo Carvalho de Melo69aad6f2011-01-03 16:39:04 -020017 }
18
19 return xy;
20}
21
Jiri Olsab45f65e2015-06-14 10:19:16 +020022void xyarray__reset(struct xyarray *xy)
23{
24 size_t n = xy->entries * xy->entry_size;
25
26 memset(xy->contents, 0, n);
27}
28
Arnaldo Carvalho de Melo69aad6f2011-01-03 16:39:04 -020029void xyarray__delete(struct xyarray *xy)
30{
31 free(xy);
32}