static sparkey_returncode compressed_add()

in src/logwriter.c [239:257]


static sparkey_returncode compressed_add(sparkey_logwriter *log, const uint8_t *data, ptrdiff_t len) {
  sparkey_buf *block_buf = &log->block_buf;

  while (1) {
    ptrdiff_t remaining = buf_remaining(block_buf);
    if (remaining >= len) {
      memcpy(block_buf->cur, data, len);
      block_buf->cur += len;
      return SPARKEY_SUCCESS;
    } else {
      memcpy(block_buf->cur, data, remaining);
      block_buf->cur += remaining;
      data += remaining;
      len -= remaining;
      RETHROW(flush_compressed(log));
    }
  }
  return SPARKEY_SUCCESS;
}