From 65a934a254ed457920d8fb7e4cae9f6de8ee83d5 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 24 Jan 2014 02:27:26 +0100 Subject: Attempt to make code more readable No more double pointer dereferencing. --- libass/ass_cache.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/libass/ass_cache.c b/libass/ass_cache.c index dd02e75..8234e5f 100644 --- a/libass/ass_cache.c +++ b/libass/ass_cache.c @@ -242,14 +242,16 @@ Cache *ass_cache_create(HashFunction hash_func, HashCompare compare_func, void *ass_cache_put(Cache *cache, void *key, void *value) { unsigned bucket = cache->hash_func(key, cache->key_size) % cache->buckets; - CacheItem **item = &cache->map[bucket]; - CacheItem *next = *item; - (*item) = calloc(1, sizeof(CacheItem)); - (*item)->key = malloc(cache->key_size); - (*item)->value = malloc(cache->value_size); - memcpy((*item)->key, key, cache->key_size); - memcpy((*item)->value, value, cache->value_size); - (*item)->next = next; + CacheItem **bucketptr = &cache->map[bucket]; + + CacheItem *item = calloc(1, sizeof(CacheItem)); + item->key = malloc(cache->key_size); + item->value = malloc(cache->value_size); + memcpy(item->key, key, cache->key_size); + memcpy(item->value, value, cache->value_size); + + item->next = *bucketptr; + *bucketptr = item; cache->items++; if (cache->size_func) @@ -257,7 +259,7 @@ void *ass_cache_put(Cache *cache, void *key, void *value) else cache->cache_size++; - return (*item)->value; + return item->value; } void *ass_cache_get(Cache *cache, void *key) -- cgit v1.2.3