From: Grazvydas Ignotas Date: Thu, 9 Mar 2017 00:54:53 +0000 (+0200) Subject: util/disk_cache: fix size subtraction on 32bit X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=61bbb25a080e48a8ca897ba7f6e73cc6a8e9b5b8;p=mesa.git util/disk_cache: fix size subtraction on 32bit Negating size_t on 32bit produces a 32bit result. This was effectively adding values close to UINT_MAX to the cache size (the files are usually small) instead of intended subtraction. Fixes 'make check' disk_cache failures on 32bit. Signed-off-by: Grazvydas Ignotas Reviewed-by: Timothy Arceri --- diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c index 5470688df32..facdcecf7ca 100644 --- a/src/util/disk_cache.c +++ b/src/util/disk_cache.c @@ -603,7 +603,7 @@ evict_random_item(struct disk_cache *cache) free(dir_path); if (size) { - p_atomic_add(cache->size, - size); + p_atomic_add(cache->size, - (uint64_t)size); return; } @@ -624,7 +624,7 @@ evict_random_item(struct disk_cache *cache) free(dir_path); if (size) - p_atomic_add(cache->size, - size); + p_atomic_add(cache->size, - (uint64_t)size); } void @@ -646,7 +646,7 @@ disk_cache_remove(struct disk_cache *cache, const cache_key key) free(filename); if (sb.st_size) - p_atomic_add(cache->size, - sb.st_size); + p_atomic_add(cache->size, - (uint64_t)sb.st_size); } /* From the zlib docs: