in src/logreader.c [353:372]
static sparkey_returncode sparkey_logiter_chunk(sparkey_logiter *iter, sparkey_logreader *log, uint64_t maxlen, uint64_t *len, uint8_t ** res, uint64_t *var) {
RETHROW(assert_iter_open(iter, log));
if (iter->state != SPARKEY_ITER_ACTIVE) {
return SPARKEY_LOG_ITERATOR_INACTIVE;
}
if (*var > 0) {
RETHROW(ensure_available(iter, log));
uint64_t m = min64(*var, iter->block_len - iter->block_offset);
m = min64(maxlen, m);
*len = m;
*res = &iter->compression_buf[iter->block_offset];
iter->block_offset += m;
*var -= m;
return SPARKEY_SUCCESS;
}
*len = 0;
return SPARKEY_SUCCESS;
}