Skip to content

merge-recursive: replace string_list with hashmap

Kevin Willford git 2 versions – New

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest3 patches 0 repliesNew
  2. v13 patches 11 repliesSuperseded

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/3merge-recursive: fix memory leakmerge-recursive.c+9 -30 replies
2/3merge-recursive: remove return value from get_files_dirsmerge-recursive.c+2 -60 replies
3/3merge-recursive: change current file dir string_lists to hashmapmerge-recursive.c merge-recursive.h+46 -130 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v3 yet.

Read the v3 thread

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

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(-)
Signature · 1 line
2.14.1.329.gcdd497e120.dirty