Example #1
0
static SquashStatus
squash_libdeflate_compress_buffer (SquashCodec* codec,
                              size_t* compressed_size,
                              uint8_t compressed[HEDLEY_ARRAY_PARAM(*compressed_size)],
                              size_t uncompressed_size,
                              const uint8_t uncompressed[HEDLEY_ARRAY_PARAM(uncompressed_size)],
                              SquashOptions* options) {
  const int level = squash_options_get_int_at (options, codec, SQUASH_LIBDEFLATE_OPT_LEVEL);
  struct deflate_compressor *compressor = deflate_alloc_compressor(level);
  *compressed_size = deflate_compress(compressor, uncompressed, uncompressed_size, compressed, *compressed_size);
  deflate_free_compressor(compressor);
  return HEDLEY_LIKELY(*compressed_size != 0) ? SQUASH_OK : squash_error (SQUASH_BUFFER_FULL);
}
Example #2
0
int libdeflate_deflate(
	unsigned char *dest,
	size_t *destLen,
	const unsigned char *source,
	size_t sourceLen,
	int level
){
	struct deflate_compressor *comp=deflate_alloc_compressor(level);
	size_t siz=deflate_compress(comp,source,sourceLen,dest,*destLen);
	deflate_free_compressor(comp);
	if(!siz)return !Z_OK;
	*destLen=siz;
	return Z_OK;
}