]> git.ipfire.org Git - pakfire.git/commitdiff
compress: Set buffer size to 64k
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 17 Mar 2021 10:44:57 +0000 (10:44 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 17 Mar 2021 10:44:57 +0000 (10:44 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/compress.c

index ffe870391f1e68be10ae7f75495ce6e44437a7c2..7e37c426bc579bcd3f3f6b1e572e47318b1b1618 100644 (file)
@@ -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))