summaryrefslogtreecommitdiff
path: root/t/t0011-hashmap.sh
diff options
context:
space:
mode:
authorLibravatar Karsten Blees <karsten.blees@gmail.com>2014-07-03 00:22:54 +0200
committerLibravatar Junio C Hamano <gitster@pobox.com>2014-07-07 13:56:38 -0700
commit7b64d42d22206d9995a8f0cb3b515e623cac4702 (patch)
tree26895c5fde113b1d84f52409f951feb37f451412 /t/t0011-hashmap.sh
parenthashmap: add simplified hashmap_get_from_hash() API (diff)
downloadtgif-7b64d42d22206d9995a8f0cb3b515e623cac4702.tar.xz
hashmap: add string interning API
Interning short strings with high probability of duplicates can reduce the memory footprint and speed up comparisons. Add strintern() and memintern() APIs that use a hashmap to manage the pool of unique, interned strings. Note: strintern(getenv()) could be used to sanitize git's use of getenv(), in case we ever encounter a platform where a call to getenv() invalidates previous getenv() results (which is allowed by POSIX). Signed-off-by: Karsten Blees <blees@dcon.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t0011-hashmap.sh')
-rwxr-xr-xt/t0011-hashmap.sh13
1 files changed, 13 insertions, 0 deletions
diff --git a/t/t0011-hashmap.sh b/t/t0011-hashmap.sh
index 391e2b6492..f97c80556f 100755
--- a/t/t0011-hashmap.sh
+++ b/t/t0011-hashmap.sh
@@ -237,4 +237,17 @@ test_expect_success 'grow / shrink' '
'
+test_expect_success 'string interning' '
+
+test_hashmap "intern value1
+intern Value1
+intern value2
+intern value2
+" "value1
+Value1
+value2
+value2"
+
+'
+
test_done