filebundle: do not use extra input buffer

This commit is contained in:
Jaroslav Kysela 2015-01-23 21:30:23 +01:00
parent 9508a68aa1
commit 3feccf34b5

View file

@ -24,6 +24,7 @@
#include <string.h>
#include <stdio.h>
#if ENABLE_ZLIB
#define ZLIB_CONST 1
#include <zlib.h>
#endif
#include <sys/types.h>
@ -78,18 +79,16 @@ static uint8_t *_fb_inflate ( const uint8_t *data, size_t size, size_t orig )
{
int err;
z_stream zstr;
uint8_t *bufin, *bufout;
uint8_t *bufout;
/* Setup buffers */
bufin = malloc(size);
bufout = malloc(orig);
memcpy(bufin, data, size);
/* Setup zlib */
memset(&zstr, 0, sizeof(zstr));
inflateInit2(&zstr, 31);
zstr.avail_in = size;
zstr.next_in = bufin;
zstr.next_in = data;
zstr.avail_out = orig;
zstr.next_out = bufout;
@ -99,7 +98,6 @@ static uint8_t *_fb_inflate ( const uint8_t *data, size_t size, size_t orig )
free(bufout);
bufout = NULL;
}
free(bufin);
inflateEnd(&zstr);
return bufout;
@ -111,18 +109,16 @@ static uint8_t *_fb_deflate ( const uint8_t *data, size_t orig, size_t *size )
{
int err;
z_stream zstr;
uint8_t *bufin, *bufout;
uint8_t *bufout;
/* Setup buffers */
bufin = malloc(orig);
bufout = malloc(orig);
memcpy(bufin, data, orig);
/* Setup zlib */
memset(&zstr, 0, sizeof(zstr));
err = deflateInit2(&zstr, 9, Z_DEFLATED, 31, 9, Z_DEFAULT_STRATEGY);
zstr.avail_in = orig;
zstr.next_in = bufin;
zstr.next_in = data;
zstr.avail_out = orig;
zstr.next_out = bufout;
@ -147,7 +143,6 @@ static uint8_t *_fb_deflate ( const uint8_t *data, size_t orig, size_t *size )
}
break;
}
free(bufin);
deflateEnd(&zstr);
return bufout;