On Fri, Oct 23, 2020 at 1:02 AM Jeff King <peff@xxxxxxxx> wrote: > > On Mon, Oct 19, 2020 at 11:13:22AM -0700, Junio C Hamano wrote: > > > * en/strmap (2020-10-13) 10 commits > > - strmap: enable allocations to come from a mem_pool > > - strmap: add a strset sub-type > > - strmap: add functions facilitating use as a string->int map > > - strmap: enable faster clearing and reusing of strmaps > > - strmap: add more utility functions > > - strmap: new utility functions > > - hashmap: introduce a new hashmap_partial_clear() > > - hashmap: allow re-use after hashmap_free() > > - hashmap: adjust spacing to fix argument alignment > > - hashmap: add usage documentation explaining hashmap_free[_entries]() > > > > A speciailization of hashmap that uses a string as key has been > > introduced. Hopefully it will see wider use over time. > > > > Will merge to 'next'. > > I haven't gotten a chance to look at this carefully yet, but note that > the strset here sort-of conflicts with the one I added recently in > builtin/shortlog.c (already in master). I think the compiler won't > complain because they never show up in the same translation unit, but we > should avoid having two almost-the-same types in the codebase. Makes sense. > I suspect my "check_and_add" function could be folded into Elijah's > implementation. The other big difference is that mine uses the > FLEX_ALLOC approach, and his doesn't. I haven't digested the code and > discussion around that from Elijah's series yet. >From a brief glance, it looks like the code in shortlog would probably be easy to convert over. But more important is making sure we have a strmap/strset/strintmap API that we like. You provided a lot of good feedback and pointers on the first round of the series, so if you could find some time to take a look at the second round, it'd be very appreciated. I'm also very interested in your opinion on whether the changes I made were good enough, or if you'd like me to dig further into whether going the FLEX_ALLOC route will work.