sfree(key);
} /* }}} void sd_output_reset_staged */
+static void reset(sd_output_t *out) {
+ sd_output_reset_staged(out);
+
+ yajl_gen_clear(out->gen); /* empty generator buffer */
+ yajl_gen_reset(out->gen, NULL); /* reset generator state */
+
+ sd_output_initialize(out);
+}
+
sd_output_t *sd_output_create(sd_resource_t *res) /* {{{ */
{
sd_output_t *out = calloc(1, sizeof(*out));
if ((status != 0) && (status != EAGAIN)) {
ERROR("sd_output_add: format_time_series failed with status %d.", status);
STRBUF_DESTROY(id);
+ reset(out);
return status;
}
yajl_gen_get_buf(out->gen, &json_buffer, &(size_t){0});
char *ret = strdup((void const *)json_buffer);
- sd_output_reset_staged(out);
-
- yajl_gen_free(out->gen);
- out->gen = yajl_gen_alloc(/* funcs = */ NULL);
-
- sd_output_initialize(out);
+ reset(out);
return ret;
} /* }}} char *sd_output_reset */