apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Branko ─îibej <br...@xbc.nu>
Subject Re: [PATCH] APR hash table memory use
Date Wed, 03 Nov 2004 00:11:01 GMT
Julian Foad wrote:

>Prevent unbounded memory use during repeated operations on a hash table.
>The hash table was allocating new memory for each new insertion of an entry,
>and not reclaiming it on deletions, so repetition of (insert, delete) caused
>the memory use to keep growing.  This fix causes the memory freed by a deletion
>to be reused by a subsequent insertion, so that the memory used by the hash
>table is proportional to the maximum number of entries that it has ever held
>simultaneously, rather than the number of insertions that have been performed.
>* apr/tables/apr_hash.c:
>  (apr_hash_t): Add new field "free", a free-list.
>  (apr_hash_make, apr_hash_copy, apr_hash_merge): Initialise the free-list.
>  (find_entry): Use an entry from the free-list if there is one.
>  (apr_hash_set): Return a deleted entry to the free-list.
This looks good. I vote we apply it on both HEAD and the 0.9.x branch.

-- Brane

View raw message