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

Re: [PATCH] hex.c: reduce memory footprint of sha1_to_hex static buffers

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 13, 2015, 23:45 UTC
Message-ID
<xmqqtwypl6jz.fsf@gitster.dls.corp.google.com>
In-Reply-To
<CAGZ79kaEun-mEQPg7cmPV7RJR8A+BxSsSpeAQgcsuJn8L4TGEg@mail.gmail.com>
Stefan Beller <sbeller@google.com> writes:
Show 17 quoted lines
> On Fri, Feb 13, 2015 at 1:41 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> Stefan Beller <sbeller@google.com> writes:
>>
>>> 41 bytes is the exact number of bytes needed for having the returned
>>> hex string represented. 50 seems to be an arbitrary number, such
>>> that there are no benefits from alignment to certain address boundaries.
>>
>> Yes, with s/seems to be/is/;
>>
>> This comes from e83c5163 (Initial revision of "git", the information
>> manager from hell, 2005-04-07), and when dcb3450f (sha1_to_hex()
>> usage cleanup, 2006-05-03) introduced the "4 recycled buffers" on
>> top, the underlying array was left at 50 bytes long.
>>
>> You can now have "I fixed Linus's bug" badge ;-)
>
> I don't think it's a bug, it's just wasting memory?

Yes and no ;-) As I already said above, 50 "is" just an arbitrary number that is round and enough to hold 40 bytes with trailing NUL, and the waste does not lead to behaviour that is different from what was intended, of course, so it would not crash.

However, the wastage was bothersome enough to make you send a patch, so you can call it a "bug". It was wasting readers time ;-)

Previous: Linus Torvalds
Message 5 of 5 in “hex.c: reduce memory footprint of sha1_to_hex static buffers”
  1. hex.c: reduce memory footprint of sha1_to_hex static buffersStefan Beller, Feb 13, 2015
  2. Junio C HamanoFeb 13, 2015
  3. Stefan BellerFeb 13, 2015
  4. Linus TorvaldsFeb 13, 2015
  5. Junio C HamanoFeb 13, 2015

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.