add new apr functions/macros needed by unimrcp update

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15542 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Michael Jerris 2009-11-19 14:24:59 +00:00
parent 8e40f02891
commit 65bfe506e2
5 changed files with 46 additions and 1 deletions

View File

@ -1 +1 @@
Mon Jun 8 11:30:01 EDT 2009
Thu Nov 19 09:24:37 EST 2009

View File

@ -174,6 +174,12 @@ APR_DECLARE(void) apr_hash_this(apr_hash_index_t *hi, const void **key,
*/
APR_DECLARE(unsigned int) apr_hash_count(apr_hash_t *ht);
/**
* Clear any key/value pairs in the hash table.
* @param ht The hash table
*/
APR_DECLARE(void) apr_hash_clear(apr_hash_t *ht);
/**
* Merge two hash tables into one new hash table. The values of the overlay
* hash override the values of the base if both have the same key. Both

View File

@ -120,6 +120,25 @@ APR_DECLARE(apr_array_header_t *) apr_array_make(apr_pool_t *p,
*/
APR_DECLARE(void *) apr_array_push(apr_array_header_t *arr);
/** A helper macro for accessing a member of an APR array.
*
* @param ary the array
* @param i the index into the array to return
* @param type the type of the objects stored in the array
*
* @return the item at index i
*/
#define APR_ARRAY_IDX(ary,i,type) (((type *)(ary)->elts)[i])
/** A helper macro for pushing elements into an APR array.
*
* @param ary the array
* @param type the type of the objects stored in the array
*
* @return the location where the new object should be placed
*/
#define APR_ARRAY_PUSH(ary,type) (*((type *)apr_array_push(ary)))
/**
* Remove an element from an array (as a first-in, last-out stack)
* @param arr The array to remove an element from.
@ -128,6 +147,14 @@ APR_DECLARE(void *) apr_array_push(apr_array_header_t *arr);
*/
APR_DECLARE(void *) apr_array_pop(apr_array_header_t *arr);
/**
* Remove all elements from an array.
* @param arr The array to remove all elements from.
* @remark As the underlying storage is allocated from a pool, no
* memory is freed by this operation, but is available for reuse.
*/
APR_DECLARE(void) apr_array_clear(apr_array_header_t *arr);
/**
* Concatenate two arrays together
* @param dst The destination array, and the one to go first in the combined

View File

@ -367,6 +367,13 @@ APR_DECLARE(unsigned int) apr_hash_count(apr_hash_t *ht)
return ht->count;
}
APR_DECLARE(void) apr_hash_clear(apr_hash_t *ht)
{
apr_hash_index_t *hi;
for (hi = apr_hash_first(NULL, ht); hi; hi = apr_hash_next(hi))
apr_hash_set(ht, hi->this->key, hi->this->klen, NULL);
}
APR_DECLARE(apr_hash_t*) apr_hash_overlay(apr_pool_t *p,
const apr_hash_t *overlay,
const apr_hash_t *base)

View File

@ -90,6 +90,11 @@ APR_DECLARE(apr_array_header_t *) apr_array_make(apr_pool_t *p,
return res;
}
APR_DECLARE(void) apr_array_clear(apr_array_header_t *arr)
{
arr->nelts = 0;
}
APR_DECLARE(void *) apr_array_pop(apr_array_header_t *arr)
{
if (apr_is_empty_array(arr)) {