Add string-specific memory pool
Intern strings so they can be compared by address and stored without wasting space. This library uses the macros in the obj_pool.h and trp.h to create a memory pool for strings and expose an API for handling them. [rr: added API docs] [jn: with some API simplifications, new documentation and tests] Signed-off-by: David Barr <david.barr@cordelta.com> Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
951f316470
commit
1d73b52f5b
@ -76,6 +76,22 @@ test_expect_success 'obj pool: high-water mark' '
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success 'string pool' '
|
||||
echo a does not equal b >expected.differ &&
|
||||
echo a equals a >expected.match &&
|
||||
echo equals equals equals >expected.matchmore &&
|
||||
|
||||
test-string-pool "a,--b" >actual.differ &&
|
||||
test-string-pool "a,a" >actual.match &&
|
||||
test-string-pool "equals-equals" >actual.matchmore &&
|
||||
test_must_fail test-string-pool a,a,a &&
|
||||
test_must_fail test-string-pool a &&
|
||||
|
||||
test_cmp expected.differ actual.differ &&
|
||||
test_cmp expected.match actual.match &&
|
||||
test_cmp expected.matchmore actual.matchmore
|
||||
'
|
||||
|
||||
test_expect_success 'treap sort' '
|
||||
cat <<-\EOF >unsorted &&
|
||||
68
|
||||
|
||||
Reference in New Issue
Block a user