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

[PATCH v3 0/3] merge-recursive: replace string_list with hashmap

From
KWKevin Willford <kewillf@microsoft.com>
Date
Sep 7, 2017, 16:25 UTC
Message-ID
<20170907162556.61384-1-kewillf@microsoft.com>

Code was using two string_lists, one for the directories and one for the files. The code never checks the lists independently so we should be able to only use one list. The string_list also is a O(log n) for lookup and insertion. Switching this to use a hashmap will give O(1) which will save some time when there are millions of paths that will be checked.

Also cleaned up a memory leak and method where the return was not being used.

Changes since last version:
1. Removed the function pointers and just check the ignore_case in the
compare and hash methods.
2. Added a comment about the hashmap and why it is getting initialized
and freed but not a local.
3. Use hashmap_get_from_hash and remove the dummy entry
Kevin Willford (3):
  merge-recursive: fix memory leak
  merge-recursive: remove return value from get_files_dirs
  merge-recursive: change current file dir string_lists to hashmap
 merge-recursive.c | 76 ++++++++++++++++++++++++++++++++++++++++---------------
 merge-recursive.h |  3 +--
 2 files changed, 57 insertions(+), 22 deletions(-)
-- 
2.14.1.329.gcdd497e120.dirty
Next: Kevin Willford
Message 1 of 4 in “merge-recursive: replace string_list with hashmap”
  1. 0/3 merge-recursive: replace string_list with hashmapKevin Willford, Sep 7, 2017
  2. 1/3 merge-recursive: fix memory leakKevin Willford, Sep 7, 2017
  3. 2/3 merge-recursive: remove return value from get_files_dirsKevin Willford, Sep 7, 2017
  4. 3/3 merge-recursive: change current file dir string_lists to hashmapKevin Willford, Sep 7, 2017

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.