]> git.ipfire.org Git - thirdparty/git.git/commit
strmap: take advantage of FLEXPTR_ALLOC_STR when relevant
authorElijah Newren <newren@gmail.com>
Wed, 11 Nov 2020 20:02:19 +0000 (20:02 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 11 Nov 2020 20:55:27 +0000 (12:55 -0800)
commit23a276a9c4c8945aadbc323e12c970816eb43c27
treebad77bc27adce523a377cca4a5af1f173c2649f8
parenta208ec1f0b654390ad06372c53b7ffe785052d98
strmap: take advantage of FLEXPTR_ALLOC_STR when relevant

By default, we do not use a mempool and strdup_strings is true; in this
case, we can avoid both an extra allocation and an extra free by just
over-allocating for the strmap_entry leaving enough space at the end to
copy the key.  FLEXPTR_ALLOC_STR exists for exactly this purpose, so
make use of it.

Also, adjust the case when we are using a memory pool and strdup_strings
is true to just do one allocation from the memory pool instead of two so
that the strmap_clear() and strmap_remove() code can just avoid freeing
the key in all cases.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
strmap.c
strmap.h