static void carray_alloc()

in c_src/hyper_carray.c [79:92]


static void carray_alloc(unsigned int precision, carray_ptr * arr)
{
	unsigned int nitems = 0x01 << precision;
	size_t header_size = HYPER_CARRAY_SIZE;
	size_t res_size = header_size + nitems;

	void *res = enif_alloc_resource(carray_resource, res_size);
	*arr = res;

	memset(*arr, 0, header_size);
	(*arr)->precision = precision;
	(*arr)->size = nitems;
	(*arr)->items = (uint8_t *) res + header_size;
}