summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathon Jongsma <jjongsma@redhat.com>2015-11-03 13:37:05 -0600
committerFrediano Ziglio <fziglio@redhat.com>2015-11-04 11:09:35 +0000
commitcf3ca136e609421f182606d8e7eaaebe139d1d24 (patch)
treed67d891992c805de4c606a2073b9e3a03d33c4ee
parentd8f89125fbcc61fd40517235cc85012076d87c51 (diff)
downloadspice-cf3ca136e609421f182606d8e7eaaebe139d1d24.tar.gz
spice-cf3ca136e609421f182606d8e7eaaebe139d1d24.tar.xz
spice-cf3ca136e609421f182606d8e7eaaebe139d1d24.zip
Palette cache: Use correct marshal function
In order to invalidate a single palette cache item, we were using spice_marshall_msg_cursor_inval_one(), which is the marshal function used to send an invalidation message for the Cursor channel's cache. This didn't cause any problems because SPICE_MSG_CURSOR_INVAL_ONE and SPICE_MSG_DISPLAY_INVAL_PALETTE have the same message ID and parameters, but it's better to use the correct marshalling function. Acked-by: Frediano Ziglio <fziglio@redhat.com>
-rw-r--r--server/red_worker.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/server/red_worker.c b/server/red_worker.c
index 906b6ab0..f86f0178 100644
--- a/server/red_worker.c
+++ b/server/red_worker.c
@@ -7458,15 +7458,17 @@ static inline void marshall_qxl_drawable(RedChannelClient *rcc,
red_lossy_marshall_qxl_drawable(display_channel->common.worker, rcc, m, dpi);
}
-static inline void red_marshall_inval(RedChannelClient *rcc,
- SpiceMarshaller *base_marshaller, CacheItem *cach_item)
+static inline void red_marshall_inval_palette(RedChannelClient *rcc,
+ SpiceMarshaller *base_marshaller,
+ CacheItem *cache_item)
{
SpiceMsgDisplayInvalOne inval_one;
- red_channel_client_init_send_data(rcc, cach_item->inval_type, NULL);
- inval_one.id = *(uint64_t *)&cach_item->id;
+ red_channel_client_init_send_data(rcc, cache_item->inval_type, NULL);
+ inval_one.id = *(uint64_t *)&cache_item->id;
+
+ spice_marshall_msg_display_inval_palette(base_marshaller, &inval_one);
- spice_marshall_msg_cursor_inval_one(base_marshaller, &inval_one);
}
static void display_channel_marshall_migrate_data_surfaces(DisplayChannelClient *dcc,
@@ -7923,7 +7925,7 @@ static void display_channel_send_item(RedChannelClient *rcc, PipeItem *pipe_item
break;
}
case PIPE_ITEM_TYPE_INVAL_ONE:
- red_marshall_inval(rcc, m, (CacheItem *)pipe_item);
+ red_marshall_inval_palette(rcc, m, (CacheItem *)pipe_item);
break;
case PIPE_ITEM_TYPE_STREAM_CREATE: {
StreamAgent *agent = SPICE_CONTAINEROF(pipe_item, StreamAgent, create_item);