]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
filebundle: do not use extra input buffer
authorJaroslav Kysela <perex@perex.cz>
Fri, 23 Jan 2015 20:30:23 +0000 (21:30 +0100)
committerJaroslav Kysela <perex@perex.cz>
Fri, 23 Jan 2015 20:30:23 +0000 (21:30 +0100)
src/filebundle.c

index a69f0bb88b430116c7b48244d7e633ad80e24ee8..aefe29eb728f5b496bb4e3536f182ac48c2d40ab 100644 (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;