in src/logreader.c [153:182]
sparkey_returncode sparkey_logiter_create(sparkey_logiter **iter_ref, sparkey_logreader *log) {
RETHROW(assert_log_open(log));
sparkey_logiter *iter = malloc(sizeof(sparkey_logiter));
if (iter == NULL) {
return SPARKEY_INTERNAL_ERROR;
}
iter->open_status = MAGIC_VALUE_LOGITER;
iter->file_identifier = log->header.file_identifier;
iter->block_position = 0;
iter->next_block_position = log->header.header_size;
iter->block_offset = 0;
iter->block_len = 0;
iter->state = SPARKEY_ITER_NEW;
if (sparkey_uses_compressor(log->header.compression_type)) {
iter->compression_buf_allocated = 1;
iter->compression_buf = malloc(log->header.compression_block_size);
if (iter->compression_buf == NULL) {
free(iter);
return SPARKEY_INTERNAL_ERROR;
}
} else {
iter->compression_buf_allocated = 0;
}
*iter_ref = iter;
return SPARKEY_SUCCESS;
}