// file : core/compress.c // project : Salis-VM // author : Paul Oliver // index: // [section] includes // [section] definitions // ---------------------------------------------------------------------------- // [section] includes // ---------------------------------------------------------------------------- #include #include #include "compress.h" // ---------------------------------------------------------------------------- // [section] definitions // ---------------------------------------------------------------------------- int comp_deflate(struct DeflateParams *params) { assert(params); assert(params->size); assert(params->in); assert(params->out); params->strm.zalloc = NULL; params->strm.zfree = NULL; params->strm.opaque = NULL; deflateInit(¶ms->strm, Z_DEFAULT_COMPRESSION); params->strm.avail_in = params->size; params->strm.avail_out = params->size; params->strm.next_in = params->in; params->strm.next_out = params->out; deflate(¶ms->strm, Z_FINISH); return 0; } int comp_inflate(struct InflateParams *params) { assert(params); assert(params->avail_in); assert(params->size); assert(params->in); assert(params->out); params->strm.next_in = params->in; params->strm.avail_in = params->avail_in; params->strm.zalloc = NULL; params->strm.zfree = NULL; params->strm.opaque = NULL; inflateInit(¶ms->strm); params->strm.avail_out = params->size; params->strm.next_out = params->out; #if defined(NDEBUG) inflate(¶ms->strm, Z_FINISH); #else assert(inflate(¶ms->strm, Z_FINISH)); #endif return 0; } void comp_deflate_end(struct DeflateParams *params) { assert(params); deflateEnd(¶ms->strm); } void comp_inflate_end(struct InflateParams *params) { assert(params); inflateEnd(¶ms->strm); }