summaryrefslogtreecommitdiff
path: root/src/compress.c
diff options
context:
space:
mode:
author= <jakob@memeware.net>2017-05-15 16:41:12 -0400
committer= <jakob@memeware.net>2017-05-15 16:41:12 -0400
commitba4fad8c5a409dd0738bc09a95cbdebf360aa496 (patch)
tree989dfc5e3594a74ce2e4fcd4014b8db7b33b4629 /src/compress.c
parent2ba0b505ce1ee748f42a85f7e27906737fa47fc8 (diff)
Began finalization of the table dumping functionality
Diffstat (limited to 'src/compress.c')
-rw-r--r--src/compress.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/compress.c b/src/compress.c
index 47acb74..9b6607d 100644
--- a/src/compress.c
+++ b/src/compress.c
@@ -65,7 +65,7 @@ struct stream *stream_inflate(struct stream *s, size_t len,
/* Deflates `s` into a newly allocated stream structure. */
struct stream *stream_deflate(struct stream *s, size_t len) {
struct stream *new = stream_new(len);
- z_stream strm;
+ z_stream strm;
strm.zalloc = Z_NULL;
strm.zfree = Z_NULL;
strm.opaque = Z_NULL;
@@ -73,15 +73,15 @@ struct stream *stream_deflate(struct stream *s, size_t len) {
if (deflateInit(&strm, LEVEL) != Z_OK)
return NULL;
+ strm.avail_in = len;
+ strm.next_in = (unsigned char *) s->_cur;
do {
- strm.avail_in = len;
- strm.next_in = (unsigned char *) s->_cur;
- do {
- strm.avail_out = len;
- strm.next_out = (unsigned char *) new->_cur;
- deflate(&strm, Z_NO_FLUSH); // Flush param may cause issues.
- } while (strm.avail_out == 0);
- } while (0);
+ strm.avail_out = len;
+ strm.next_out = (unsigned char *) new->_cur;
+ deflate(&strm, Z_NO_FLUSH); // Flush param may cause issues.
+ } while (strm.avail_out == 0);
+
+ new->len = len - strm.avail_out;
deflateEnd(&strm);
return new;