Re: [RFH] zlib gurus out there?
- From
Junio C Hamano <junkio@cox.net>
- Date
- Mar 8, 2006, 01:22 UTC
- Message-ID
- <7vslptivbg.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <Pine.LNX.4.64.0603071658300.32577@g5.osdl.org>
Linus Torvalds <torvalds@osdl.org> writes:
Show 16 quoted lines
> On Tue, 7 Mar 2006, Junio C Hamano wrote: >> >> However, I am stuck with the first step, which is to do a full >> flush after the header. An obvious change to the code quoted >> above writes out a corrupt object: >> >> /* First header.. */ >> stream.next_in = hdr; >> stream.avail_in = hdrlen; >> - while (deflate(&stream, 0) == Z_OK) >> + while (deflate(&stream, Z_FULL_FLUSH) == Z_OK) >> /* nothing */; > > No, I don't think that's good. You're only doing a partial deflate, you > can't ask for a Z_FULL_FLUSH. That only works if you give it the whole > buffer, and you don't.
So, in short there is no way to create:
hdr part deflated.
flush.
data part deflated independently.and have the current sha1_read_file() not to notice that flush, while I can inspect the deflated stream to find the "flush", and copy only the defalted data part into a pack? Bummer... I was really shooting for full backward compatibility.