in src/logwriter.c [173:197]
static sparkey_returncode flush_compressed(sparkey_logwriter *log) {
log->flushed = 1;
if (log->entry_count > (int) log->header.max_entries_per_block) {
log->header.max_entries_per_block = log->entry_count;
}
log->entry_count = 0;
sparkey_buf *block_buf = &log->block_buf;
uint8_t *compressed = log->compressed;
uint32_t compressed_size = log->max_compressed_size;
sparkey_buf *file_buf = &log->file_buf;
int fd = log->fd;
sparkey_returncode ret = sparkey_compressors[log->header.compression_type].compress(
block_buf->start, buf_used(block_buf), compressed, &compressed_size);
if (ret != SPARKEY_SUCCESS) {
return ret;
}
uint8_t buf1[10];
ptrdiff_t written1 = write_vlq(buf1, compressed_size);
RETHROW(buf_add(file_buf, fd, buf1, written1));
RETHROW(buf_add(file_buf, fd, compressed, compressed_size));
block_buf->cur = block_buf->start;
return SPARKEY_SUCCESS;
}