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

Re: [PATCH] binary patch.

From
Junio C Hamano <junkio@cox.net>
Date
May 5, 2006, 17:38 UTC
Message-ID
<7vejz8z80p.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<Pine.LNX.4.64.0605051128100.28543@localhost.localdomain>
Nicolas Pitre <nico@cam.org> writes:
Show 8 quoted lines
>> +	delta = NULL;
>> +	deflated = deflate_it(two->ptr, two->size, &deflate_size);
>> +	if (one->size && two->size) {
>> +		delta = diff_delta(one->ptr, one->size,
>> +				   two->ptr, two->size,
>> +				   &delta_size, deflate_size);
>
> Here you probably want to use deflate_size-1 (deflate_size can't be 0).
I am not sure if -1 is worth here.

The delta is going to be deflated and hopefully gets a bit smaller, so if we really care that level of detail, it might be worth to do (deflate_size*3/2) or something like that here, use delta with or without deflate whichever is smaller, and mark the uncompressed delta with a different tag ("uncompressed delta"?). And for symmetry, to deal with uncompressible data, we may want to have "uncompressed literal" as well.

Show 5 quoted lines
>> +		orig_size = delta_size;
>> +		if (delta)
>> +			delta = deflate_it(delta, delta_size, &delta_size);
>
> Here you're leaking the original delta buffer memory.
Indeed.  Thanks.
Previous: Nicolas PitreNext: Nicolas Pitre
Message 6 of 12 in “binary patch.”
  1. binary patch.Junio C Hamano, May 4, 2006
  2. Nicolas PitreMay 5, 2006
  3. Junio C HamanoMay 5, 2006
  4. Junio C HamanoMay 5, 2006
  5. Nicolas PitreMay 5, 2006
  6. Junio C HamanoMay 5, 2006
  7. Nicolas PitreMay 5, 2006
  8. Junio C HamanoMay 5, 2006
  9. Nicolas PitreMay 5, 2006
  10. Daniel BarkalowMay 5, 2006
  11. Junio C HamanoMay 5, 2006
  12. Junio C HamanoMay 6, 2006

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.