[Spice-devel] [PATCH 2/4] Move RedCacheItem size field inside cache_data union

Frediano Ziglio fziglio at redhat.com
Tue May 24 14:55:19 UTC 2016


This reduce a bit the structure size and make clean that
the field is used only when the item is a cache item.

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 server/cache-item.h      | 2 +-
 server/cache-item.tmpl.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/server/cache-item.h b/server/cache-item.h
index 864b163..af0fc9e 100644
--- a/server/cache-item.h
+++ b/server/cache-item.h
@@ -30,10 +30,10 @@ struct RedCacheItem {
         struct {
             RingItem lru_link;
             RedCacheItem *next;
+            size_t size;
         } cache_data;
     } u;
     uint64_t id;
-    size_t size;
 };
 
 #endif /* CACHE_ITEM_H_ */
diff --git a/server/cache-item.tmpl.c b/server/cache-item.tmpl.c
index 2cf12d8..9a9181c 100644
--- a/server/cache-item.tmpl.c
+++ b/server/cache-item.tmpl.c
@@ -77,7 +77,7 @@ static void FUNC_NAME(remove)(CHANNELCLIENT *channel_client, RedCacheItem *item)
     }
     ring_remove(&item->u.cache_data.lru_link);
     channel_client->VAR_NAME(items)--;
-    channel_client->VAR_NAME(available) += item->size;
+    channel_client->VAR_NAME(available) += item->u.cache_data.size;
 
     red_pipe_item_init(&item->u.pipe_data, RED_PIPE_ITEM_TYPE_INVAL_ONE);
     red_channel_client_pipe_add_tail_and_push(&channel_client->common.base, &item->u.pipe_data); // for now
@@ -107,7 +107,7 @@ static int FUNC_NAME(add)(CHANNELCLIENT *channel_client, uint64_t id, size_t siz
     ring_item_init(&item->u.cache_data.lru_link);
     ring_add(&channel_client->VAR_NAME(lru), &item->u.cache_data.lru_link);
     item->id = id;
-    item->size = size;
+    item->u.cache_data.size = size;
     return TRUE;
 }
 
-- 
2.7.4



More information about the Spice-devel mailing list