[Spice-devel] [PATCH v2 7/9] DCC: remove more init_send_data() arguments
Jonathon Jongsma
jjongsma at redhat.com
Thu Dec 15 19:19:22 UTC 2016
---
server/dcc-send.c | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/server/dcc-send.c b/server/dcc-send.c
index edeea62..db42ab8 100644
--- a/server/dcc-send.c
+++ b/server/dcc-send.c
@@ -1118,7 +1118,7 @@ static void red_marshall_qxl_copy_bits(RedChannelClient *rcc,
RedDrawable *drawable = item->red_drawable;
SpicePoint copy_bits;
- red_channel_client_init_send_data(rcc, SPICE_MSG_DISPLAY_COPY_BITS, &dpi->dpi_pipe_item);
+ red_channel_client_init_send_data(rcc, SPICE_MSG_DISPLAY_COPY_BITS, NULL);
fill_base(base_marshaller, item);
copy_bits = drawable->u.copy_bits.src_pos;
spice_marshall_Point(base_marshaller,
@@ -1897,6 +1897,12 @@ static void display_channel_marshall_reset_cache(RedChannelClient *rcc,
&wait);
}
+static void marshaller_free_pipe_item(uint8_t *data, void *opaque)
+{
+ RedPipeItem *item = opaque;
+ red_pipe_item_unref(item);
+}
+
static void red_marshall_image(RedChannelClient *rcc,
SpiceMarshaller *m,
RedImageItem *item)
@@ -1933,7 +1939,7 @@ static void red_marshall_image(RedChannelClient *rcc,
chunks = spice_chunks_new_linear(item->data, bitmap.stride * bitmap.y);
bitmap.data = chunks;
- red_channel_client_init_send_data(rcc, SPICE_MSG_DISPLAY_DRAW_COPY, &item->base);
+ red_channel_client_init_send_data(rcc, SPICE_MSG_DISPLAY_DRAW_COPY, NULL);
copy.base.surface_id = item->surface_id;
copy.base.box.left = item->pos.x;
@@ -1984,8 +1990,9 @@ static void red_marshall_image(RedChannelClient *rcc,
spice_marshall_Image(src_bitmap_out, &red_image,
&bitmap_palette_out, &lzplt_palette_out);
- spice_marshaller_add_by_ref(src_bitmap_out, item->data,
- bitmap.y * bitmap.stride);
+ spice_marshaller_add_by_ref_full(src_bitmap_out, item->data,
+ bitmap.y * bitmap.stride,
+ marshaller_free_pipe_item, item);
region_remove(surface_lossy_region, ©.base.box);
}
spice_chunks_destroy(chunks);
@@ -2170,7 +2177,7 @@ static void marshall_stream_clip(RedChannelClient *rcc,
spice_return_if_fail(agent->stream);
- red_channel_client_init_send_data(rcc, SPICE_MSG_DISPLAY_STREAM_CLIP, &item->base);
+ red_channel_client_init_send_data(rcc, SPICE_MSG_DISPLAY_STREAM_CLIP, NULL);
SpiceMsgDisplayStreamClip stream_clip;
stream_clip.id = display_channel_get_stream_id(DCC_TO_DC(dcc), agent->stream);
--
2.7.4
More information about the Spice-devel
mailing list