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

Re: [[PATCH v2] 1/4] patch-ids: stop using a hand-rolled hashmap implementation

From
EWEric Wong <e@80x24.org>
Date
Aug 1, 2016, 22:34 UTC
Message-ID
<20160801223447.GA10924@whir>
In-Reply-To
<xmqqy44gi7bp.fsf@gitster.mtv.corp.google.com>
Junio C Hamano <gitster@pobox.com> wrote:
Show 7 quoted lines
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 
> > It would be a serious bug if hashmap_entry_init() played games with
> > references, given its signature (that this function does not have any
> > access to the hashmap structure, only to the entry itself):
> >
> > 	void hashmap_entry_init(void *entry, unsigned int hash)
<snip>
> I have a slight preference to avoid the lazy "void *", but that is
> an unrelated tangent.

Me too. I noticed this while working on the http-walker speedups and my self-rejected last patch:

  https://public-inbox.org/git/20160711210243.GA1604%40whir/

Extracting list_entry from list.h (currently in next[1]) and exposing that generically as "container_of" for use with hashmap_* would make it safer-to-use and allow structs to belong to multiple hashmaps.

list_entry is also an alias for container_of in the Linux kernel, but we don't have enough code using list_* to warrant two names for the same macro.

[1] https://public-inbox.org/git/20160711205131.1291-4-e%4080x24.org/
Previous: Junio C HamanoNext: Johannes Schindelin
Message 6 of 25 in “0/4] Use header data patch ids for rebase to avoid loading file content”
  1. 0/4] Use header data patch ids for rebase to avoid loading file contentKevin Willford, Jul 29, 2016
  2. 1/4] patch-ids: stop using a hand-rolled hashmap implementationKevin Willford, Jul 29, 2016
  3. Junio C HamanoJul 29, 2016
  4. Johannes SchindelinAug 1, 2016
  5. Junio C HamanoAug 1, 2016
  6. Eric WongAug 1, 2016
  7. Johannes SchindelinAug 2, 2016
  8. Junio C HamanoAug 2, 2016
  9. Junio C HamanoAug 2, 2016
  10. Junio C HamanoJul 29, 2016
  11. 2/4] patch-ids: replace the seen indicator with a commit pointerKevin Willford, Jul 29, 2016
  12. Junio C HamanoJul 29, 2016
  13. 4/4] rebase: avoid computing unnecessary patch IDsKevin Willford, Jul 29, 2016
  14. Junio C HamanoJul 29, 2016
  15. Johannes SchindelinAug 1, 2016
  16. Junio C HamanoAug 1, 2016
  17. Jakub NarębskiAug 2, 2016
  18. Junio C HamanoAug 2, 2016
  19. Johannes SchindelinAug 2, 2016
  20. Junio C HamanoAug 2, 2016
  21. Junio C HamanoAug 4, 2016
  22. Johannes SchindelinAug 4, 2016
  23. 3/4] patch-ids: add flag to create the diff patch id using header only dataKevin Willford, Jul 29, 2016
  24. Junio C HamanoJul 29, 2016
  25. Johannes SchindelinAug 1, 2016

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.