Esempio n. 1
0
/*
 * Allocate and initialize a struct counters. Data entries up to the size are
 * set to 0.
 */
struct counters *
counters_init(size_t initial_size)
{
	struct counters *c = x_malloc(sizeof(*c));
	c->data = NULL;
	c->size = 0;
	c->allocated = 0;
	counters_resize(c, initial_size);
	return c;
}
Esempio n. 2
0
// Parse a stats file from a buffer, adding to the counters.
static void
parse_stats(struct counters *counters, const char *buf)
{
	size_t i = 0;
	const char *p = buf;
	while (true) {
		char *p2;
		long val = strtol(p, &p2, 10);
		if (p2 == p) {
			break;
		}
		if (counters->size < i + 1) {
			counters_resize(counters, i + 1);
		}
		counters->data[i] += val;
		i++;
		p = p2;
	}
}