From: Michael Tremer Date: Wed, 17 Mar 2021 10:44:57 +0000 (+0000) Subject: compress: Set buffer size to 64k X-Git-Tag: 0.9.28~1285^2~520 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5cd454df3a3e59c774110f91647e81a647806e48;p=pakfire.git compress: Set buffer size to 64k Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/compress.c b/src/libpakfire/compress.c index ffe870391..7e37c426b 100644 --- a/src/libpakfire/compress.c +++ b/src/libpakfire/compress.c @@ -29,6 +29,9 @@ // Read up to N bytes for analyze the magic #define MAX_MAGIC_LENGTH 6 +// Compression/Decompression buffer size +#define BUFFER_SIZE 64 * 1024 + const struct compressor { char magic[MAX_MAGIC_LENGTH]; size_t magic_length; @@ -39,14 +42,6 @@ const struct compressor { { "", 0, NULL, }, }; -struct xz_cookie { - FILE* f; - lzma_stream stream; - int done; - - uint8_t buffer[64 * 1024]; -}; - // Try to guess the compression FILE* pakfire_xfopen(FILE* f, const char* mode) { char buffer[MAX_MAGIC_LENGTH]; @@ -105,6 +100,16 @@ FILE* pakfire_xfopen(FILE* f, const char* mode) { return f; } +struct xz_cookie { + FILE* f; + char mode; + lzma_stream stream; + int done; + + uint8_t buffer[BUFFER_SIZE]; +}; + + static ssize_t xz_read(void* data, char* buffer, size_t size) { struct xz_cookie* cookie = (struct xz_cookie*)data; if (!cookie) @@ -125,7 +130,7 @@ static ssize_t xz_read(void* data, char* buffer, size_t size) { if (cookie->stream.avail_in == 0) { cookie->stream.next_in = cookie->buffer; cookie->stream.avail_in = fread(cookie->buffer, - 1, sizeof(*cookie->buffer), cookie->f); + 1, sizeof(cookie->buffer), cookie->f); // Break if the input file could not be read if (ferror(cookie->f))