git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 6/6] Use new compress helpers in builtin-pack-objects.c

From
MCMarco Costalba <mcostalba@gmail.com>
Date
Jan 10, 2008, 21:34 UTC
Message-ID
<e5bfff550801101334p5df5adaerf0eeae02ddf28334@mail.gmail.com>
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
---
It's 'compress helper' not 'decomrpess helper' of course.
All my patch series is misnamed by my idiocy!

This is the last one for this evening, this is interesting because pack_compression_level instead of the usual zlib_compression_level is used.

The goal of this patch series is to have some comment before to procede with remaining conversions.

When compression is fully abstarceted out I will go with decompression (inflate).

At the end of this job perhaps we have something that allows us to have fun with different compression libraries.

In any case IMHO this patch series is valid 'per se' as a cleanup and (a lot of) code lines removing.

 builtin-pack-objects.c |   21 ++++-----------------
 1 files changed, 4 insertions(+), 17 deletions(-)
diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c
index a39cb82..682d7fb 100644
--- a/builtin-pack-objects.c
+++ b/builtin-pack-objects.c
@@ -1,5 +1,6 @@
 #include "builtin.h"
 #include "cache.h"
+#include "compress.h"
 #include "attr.h"
 #include "object.h"
 #include "blob.h"
@@ -409,9 +410,7 @@ static unsigned long write_object(struct sha1file *f,
 				 */

 	if (!to_reuse) {
-		z_stream stream;
-		unsigned long maxsize;
-		void *out;
+		unsigned char *out = NULL;
 		if (!usable_delta) {
 			buf = read_sha1_file(entry->idx.sha1, &obj_type, &size);
 			if (!buf)
@@ -432,20 +431,8 @@ static unsigned long write_object(struct sha1file *f,
 				OBJ_OFS_DELTA : OBJ_REF_DELTA;
 		}
 		/* compress the data to store and put compressed length in datalen */
-		memset(&stream, 0, sizeof(stream));
-		deflateInit(&stream, pack_compression_level);
-		maxsize = deflateBound(&stream, size);
-		out = xmalloc(maxsize);
-		/* Compress it */
-		stream.next_in = buf;
-		stream.avail_in = size;
-		stream.next_out = out;
-		stream.avail_out = maxsize;
-		while (deflate(&stream, Z_FINISH) == Z_OK)
-			/* nothing */;
-		deflateEnd(&stream);
-		datalen = stream.total_out;
-		deflateEnd(&stream);
+		datalen = z_deflate_all(pack_compression_level, buf, size, &out);
+
 		/*
 		 * The object header is a byte of 'type' followed by zero or
 		 * more bytes of length.
-- 
1.5.4.rc2.89.g1b3f-dirty
Next: Nicolas Pitre
Message 1 of 4 in “Use new compress helpers in builtin-pack-objects.c”
  1. 6/6 Use new compress helpers in builtin-pack-objects.cMarco Costalba, Jan 10, 2008
  2. Nicolas PitreJan 10, 2008
  3. Marco CostalbaJan 11, 2008
  4. Junio C HamanoJan 11, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.