Module: Mesa
Branch: master
Commit: 08101aaaace22481e390d8f048e38908f0fbabf5
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=08101aaaace22481e390d8f048e38908f0fbabf5

Author: Timothy Arceri <[email protected]>
Date:   Sat Mar  6 14:49:31 2021 +1100

util/disk_cache: add cache item headers to single file cache entries

I mistakenly left these out of the original single file cache
implementation.

Reviewed-By: Mike Blumenkrantz <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9443>

---

 src/util/disk_cache_os.c | 24 +++++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

diff --git a/src/util/disk_cache_os.c b/src/util/disk_cache_os.c
index b0ebbe6d07c..895c9a23208 100644
--- a/src/util/disk_cache_os.c
+++ b/src/util/disk_cache_os.c
@@ -792,14 +792,32 @@ void *
 disk_cache_load_item_foz(struct disk_cache *cache, const cache_key key,
                          size_t *size)
 {
-   return foz_read_entry(&cache->foz_db, key, size);
+   size_t cache_tem_size = 0;
+   void *cache_item = foz_read_entry(&cache->foz_db, key, &cache_tem_size);
+   if (!cache_item)
+      return NULL;
+
+   uint8_t *uncompressed_data =
+       parse_and_validate_cache_item(cache, cache_item, cache_tem_size, size);
+   free(cache_item);
+
+   return uncompressed_data;
 }
 
 bool
 disk_cache_write_item_to_disk_foz(struct disk_cache_put_job *dc_job)
 {
-   return foz_write_entry(&dc_job->cache->foz_db, dc_job->key, dc_job->data,
-                          dc_job->size);
+   struct blob cache_blob;
+   blob_init(&cache_blob);
+
+   if (!create_cache_item_header_and_blob(dc_job, &cache_blob))
+      return false;
+
+   bool r = foz_write_entry(&dc_job->cache->foz_db, dc_job->key,
+                            cache_blob.data, cache_blob.size);
+
+   blob_finish(&cache_blob);
+   return r;
 }
 
 bool

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to