> > These need to be introduced at the same time since cache-item.tmpl.c > assumes that both of these classes will have a cache in the same place: > either within the channel client struct itself or (now) within a priv > struct owned by the channel client. > > This encapsulates private data and prepares for porting to GObject. > --- > Changes in v2: > - Fixed leak of priv by using 1-element array trick > > server/cache-item.tmpl.c | 38 +++++----- > server/cursor-channel-client.c | 16 ++-- > server/dcc-private.h | 14 +++- > server/dcc-send.c | 114 ++++++++++++++-------------- > server/dcc.c | 165 > +++++++++++++++++++++-------------------- > 5 files changed, 182 insertions(+), 165 deletions(-) > > diff --git a/server/cache-item.tmpl.c b/server/cache-item.tmpl.c > index d1310a5..ce38a2a 100644 > --- a/server/cache-item.tmpl.c > +++ b/server/cache-item.tmpl.c > @@ -46,12 +46,12 @@ > > static RedCacheItem *FUNC_NAME(find)(CHANNELCLIENT *channel_client, uint64_t > id) > { > - RedCacheItem *item = channel_client->CACHE_NAME[CACHE_HASH_KEY(id)]; > + RedCacheItem *item = > channel_client->priv->CACHE_NAME[CACHE_HASH_KEY(id)]; > > while (item) { > if (item->id == id) { > ring_remove(&item->u.cache_data.lru_link); > - ring_add(&channel_client->VAR_NAME(lru), > &item->u.cache_data.lru_link); > + ring_add(&channel_client->priv->VAR_NAME(lru), > &item->u.cache_data.lru_link); > break; > } > item = item->u.cache_data.next; > @@ -64,7 +64,7 @@ static void FUNC_NAME(remove)(CHANNELCLIENT > *channel_client, RedCacheItem *item) > RedCacheItem **now; > spice_assert(item); > > - now = &channel_client->CACHE_NAME[CACHE_HASH_KEY(item->id)]; > + now = &channel_client->priv->CACHE_NAME[CACHE_HASH_KEY(item->id)]; > for (;;) { > spice_assert(*now); > if (*now == item) { > @@ -74,8 +74,8 @@ static void FUNC_NAME(remove)(CHANNELCLIENT > *channel_client, RedCacheItem *item) > now = &(*now)->u.cache_data.next; > } > ring_remove(&item->u.cache_data.lru_link); > - channel_client->VAR_NAME(items)--; > - channel_client->VAR_NAME(available) += item->u.cache_data.size; ... Acked-by: Frediano Ziglio <fziglio@xxxxxxxxxx Frediano _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel