Re: [PATCH 10/11] Convert builtin-pack/unpack
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:44:10
Marco Costalba [off-list ref] writes:
quoted hunk ↗ jump to hunk
diff --git a/builtin-unpack-objects.c b/builtin-unpack-objects.c index 1e51865..c996560 100644 --- a/builtin-unpack-objects.c +++ b/builtin-unpack-objects.c@@ -1,5 +1,6 @@ #include "builtin.h" #include "cache.h" +#include "compress.h" #include "object.h" #include "delta.h" #include "pack.h"@@ -61,23 +62,20 @@ static void use(int bytes) static void *get_data(unsigned long size) { z_stream stream; - void *buf = xmalloc(size); + unsigned char *buf = xmalloc(size);;
Why? Your other changes (e.g. unpack_entry_data()::index-pack.c in [08/11]) left the type of buf as it was, and I think the same should be done here.
- memset(&stream, 0, sizeof(stream));
-
- stream.next_out = buf;
- stream.avail_out = size;
- stream.next_in = fill(1);
- stream.avail_in = len;
- inflateInit(&stream);
+ decompress_alloc(&stream);
+ decompress_into(&stream, buf, size);
for (;;) {
- int ret = inflate(&stream, 0);
+ /* fill() modifies len, so be sure is evaluated as first */
+ void* tmp = fill(1);
+ int ret = decompress_next_from(&stream, tmp, len, Z_NO_FLUSH);(Style) that's "void *tmp".