diff --git a/src/libImaging/QuantHash.c b/src/libImaging/QuantHash.c index 48b7a973e..cf805a6c5 100644 --- a/src/libImaging/QuantHash.c +++ b/src/libImaging/QuantHash.c @@ -35,8 +35,6 @@ struct _HashTable { uint32_t count; HashFunc hashFunc; HashCmpFunc cmpFunc; - KeyDestroyFunc keyDestroyFunc; - ValDestroyFunc valDestroyFunc; void *userData; }; @@ -51,8 +49,6 @@ HashTable *hashtable_new(HashFunc hf,HashCmpFunc cf) { if (!h) { return NULL; } h->hashFunc=hf; h->cmpFunc=cf; - h->keyDestroyFunc=NULL; - h->valDestroyFunc=NULL; h->length=MIN_LENGTH; h->count=0; h->userData=NULL; @@ -62,15 +58,6 @@ HashTable *hashtable_new(HashFunc hf,HashCmpFunc cf) { return h; } -static void _hashtable_destroy(const HashTable *h,const HashKey_t key,const HashVal_t val,void *u) { - if (h->keyDestroyFunc) { - h->keyDestroyFunc(h,key); - } - if (h->valDestroyFunc) { - h->valDestroyFunc(h,val); - } -} - static uint32_t _findPrime(uint32_t start,int dir) { static int unit[]={0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,0}; uint32_t t; @@ -144,12 +131,6 @@ static int _hashtable_insert_node(HashTable *h,HashNode *node,int resize,int upd free(node); return 1; } else { - if (h->valDestroyFunc) { - h->valDestroyFunc(h,nv->value); - } - if (h->keyDestroyFunc) { - h->keyDestroyFunc(h,nv->key); - } nv->key=node->key; nv->value=node->value; free(node); @@ -180,7 +161,6 @@ static int _hashtable_insert(HashTable *h,HashKey_t key,HashVal_t val,int resize nv=*n; i=h->cmpFunc(h,nv->key,key); if (!i) { - if (h->valDestroyFunc) { h->valDestroyFunc(h,nv->value); } nv->value=val; return 1; } else if (i>0) { @@ -243,14 +223,8 @@ int hashtable_insert_or_update_computed(HashTable *h, nv=*n; i=h->cmpFunc(h,nv->key,key); if (!i) { - HashVal_t old=nv->value; if (existsFunc) { existsFunc(h,nv->key,&(nv->value)); - if (nv->value!=old) { - if (h->valDestroyFunc) { - h->valDestroyFunc(h,old); - } - } } else { return 0; } @@ -314,9 +288,6 @@ void hashtable_free(HashTable *h) { uint32_t i; if (h->table) { - if (h->keyDestroyFunc || h->keyDestroyFunc) { - hashtable_foreach(h,_hashtable_destroy,NULL); - } for (i=0;ilength;i++) { for (n=h->table[i];n;n=nn) { nn=n->next; @@ -328,18 +299,6 @@ void hashtable_free(HashTable *h) { free(h); } -ValDestroyFunc hashtable_set_value_destroy_func(HashTable *h,ValDestroyFunc d) { - ValDestroyFunc r=h->valDestroyFunc; - h->valDestroyFunc=d; - return r; -} - -KeyDestroyFunc hashtable_set_key_destroy_func(HashTable *h,KeyDestroyFunc d) { - KeyDestroyFunc r=h->keyDestroyFunc; - h->keyDestroyFunc=d; - return r; -} - static int _hashtable_remove(HashTable *h, const HashKey_t key, HashKey_t *keyRet, @@ -374,8 +333,6 @@ static int _hashtable_delete(HashTable *h,const HashKey_t key,int resize) { i=h->cmpFunc(h,n->key,key); if (!i) { if (p) p=n->next; else h->table[hash]=n->next; - if (h->valDestroyFunc) { h->valDestroyFunc(h,n->value); } - if (h->keyDestroyFunc) { h->keyDestroyFunc(h,n->key); } free(n); h->count++; return 1; diff --git a/src/libImaging/QuantHash.h b/src/libImaging/QuantHash.h index 028b4af89..df38b0eea 100644 --- a/src/libImaging/QuantHash.h +++ b/src/libImaging/QuantHash.h @@ -22,8 +22,6 @@ typedef uint32_t (*HashFunc)(const HashTable *,const HashKey_t); typedef int (*HashCmpFunc)(const HashTable *,const HashKey_t,const HashKey_t); typedef void (*IteratorFunc)(const HashTable *,const HashKey_t,const HashVal_t,void *); typedef void (*IteratorUpdateFunc)(const HashTable *,const HashKey_t,HashVal_t *,void *); -typedef void (*KeyDestroyFunc)(const HashTable *,HashKey_t); -typedef void (*ValDestroyFunc)(const HashTable *,HashVal_t); typedef void (*ComputeFunc)(const HashTable *,const HashKey_t,HashVal_t *); typedef void (*CollisionFunc)(const HashTable *,HashKey_t *,HashVal_t *,HashKey_t,HashVal_t); @@ -40,8 +38,6 @@ int hashtable_delete(HashTable *h,const HashKey_t key); int hashtable_remove(HashTable *h,const HashKey_t key,HashKey_t *keyRet,HashVal_t *valRet); void *hashtable_set_user_data(HashTable *h,void *data); void *hashtable_get_user_data(const HashTable *h); -KeyDestroyFunc hashtable_set_key_destroy_func(HashTable *,KeyDestroyFunc d); -ValDestroyFunc hashtable_set_value_destroy_func(HashTable *,ValDestroyFunc d); uint32_t hashtable_get_count(const HashTable *h); void hashtable_rehash(HashTable *h); void hashtable_rehash_compute(HashTable *h,CollisionFunc cf);