Thanks to snuff-work, who brought up that these fixes might need to be made.
authorSteve Murphy <murf@digium.com>
Mon, 12 Nov 2007 20:49:27 +0000 (20:49 +0000)
committerSteve Murphy <murf@digium.com>
Mon, 12 Nov 2007 20:49:27 +0000 (20:49 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89196 65c4cc65-6c06-0410-ace0-fbb531ad65f3

include/asterisk/hashtab.h
main/hashtab.c

index f40324b..094254a 100644 (file)
@@ -175,7 +175,7 @@ void ast_hashtab_destroy( struct ast_hashtab *tab, void (*objdestroyfunc)(void *
 int ast_hashtab_insert_immediate(struct ast_hashtab *tab, const void *obj);
 
        /* same as the above, but h is the hash index; won't hash to find the index */
-int ast_hashtab_insert_immediate_bucket(struct ast_hashtab *tab, const void *obj, int h);
+int ast_hashtab_insert_immediate_bucket(struct ast_hashtab *tab, const void *obj, unsigned int h);
 
 
        /* check to see if the element is already there; insert only if
@@ -194,7 +194,7 @@ void * ast_hashtab_lookup_with_hash(struct ast_hashtab *tab, const void *obj, un
 
        /* same as the above lookup, but sets h to the key hash value if the lookup fails -- this has the modulus 
        applied, and will not be useful for long term storage if the table is resizable */
-void * ast_hashtab_lookup_bucket(struct ast_hashtab *tab, const void *obj, int *h);
+void * ast_hashtab_lookup_bucket(struct ast_hashtab *tab, const void *obj, unsigned int *h);
 
        /* returns key stats for the table */
 void ast_hashtab_get_stats( struct ast_hashtab *tab, int *biggest_bucket_size, int *resize_count, int *num_objects, int *num_buckets);
index 7c4adf8..1e46857 100644 (file)
@@ -246,7 +246,7 @@ struct ast_hashtab * ast_hashtab_create(int initial_buckets,
 struct ast_hashtab *ast_hashtab_dup(struct ast_hashtab *tab, void *(*obj_dup_func)(const void *obj))
 {
        struct ast_hashtab *ht = ast_calloc(1,sizeof(struct ast_hashtab));
-       int i;
+       unsigned int i;
        
        ht->array = ast_calloc(tab->hash_tab_size,sizeof(struct ast_hashtab_bucket*));
        ht->hash_tab_size = tab->hash_tab_size;
@@ -416,7 +416,7 @@ int ast_hashtab_insert_immediate(struct ast_hashtab *tab, const void *obj)
        return 1;
 }
 
-int ast_hashtab_insert_immediate_bucket(struct ast_hashtab *tab, const void *obj, int h)
+int ast_hashtab_insert_immediate_bucket(struct ast_hashtab *tab, const void *obj, unsigned int h)
 {
        /* normally, you'd insert "safely" by checking to see if the element is
           already there; in this case, you must already have checked. If an element
@@ -456,7 +456,7 @@ int ast_hashtab_insert_safe(struct ast_hashtab *tab, const void *obj)
           it is not there. */
        /* will force a resize if the resize func returns 1 */
        /* returns 1 on success, 0 if there's a problem, or it's already there. */
-       int bucket = 0;
+       unsigned int bucket = 0;
        if (tab->do_locking)
                ast_rwlock_wrlock(&tab->lock);
 
@@ -525,7 +525,7 @@ void * ast_hashtab_lookup_with_hash(struct ast_hashtab *tab, const void *obj, un
        return 0;
 }
 
-void * ast_hashtab_lookup_bucket(struct ast_hashtab *tab, const void *obj, int *bucket)
+void * ast_hashtab_lookup_bucket(struct ast_hashtab *tab, const void *obj, unsigned int *bucket)
 {
        /* lookup this object in the hash table. return a ptr if found, or NULL if not */
        unsigned int h;