worker: move stream_clip_item_unref()

Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
This commit is contained in:
Marc-André Lureau 2013-09-25 15:55:42 +02:00 committed by Frediano Ziglio
parent f06ce6c1c4
commit ff070be68f
3 changed files with 18 additions and 14 deletions

View File

@ -192,16 +192,6 @@ static void red_create_surface(DisplayChannel *display, uint32_t surface_id, uin
uint32_t height, int32_t stride, uint32_t format,
void *line_0, int data_is_valid, int send_client);
static void display_stream_clip_unref(DisplayChannel *display, StreamClipItem *item)
{
if (--item->refs != 0)
return;
stream_agent_unref(display, item->stream_agent);
free(item->rects);
free(item);
}
void attach_stream(DisplayChannel *display, Drawable *drawable, Stream *stream)
{
DisplayChannelClient *dcc;
@ -5477,7 +5467,7 @@ static void display_channel_client_release_item_after_push(DisplayChannelClient
drawable_pipe_item_unref(SPICE_CONTAINEROF(item, DrawablePipeItem, dpi_pipe_item));
break;
case PIPE_ITEM_TYPE_STREAM_CLIP:
display_stream_clip_unref(display, (StreamClipItem *)item);
stream_clip_item_unref(dcc, (StreamClipItem *)item);
break;
case PIPE_ITEM_TYPE_UPGRADE:
upgrade_item_unref(display, (UpgradeItem *)item);
@ -5520,7 +5510,7 @@ static void display_channel_client_release_item_before_push(DisplayChannelClient
break;
}
case PIPE_ITEM_TYPE_STREAM_CLIP:
display_stream_clip_unref(display, (StreamClipItem *)item);
stream_clip_item_unref(dcc, (StreamClipItem *)item);
break;
case PIPE_ITEM_TYPE_STREAM_DESTROY: {
StreamAgent *agent = SPICE_CONTAINEROF(item, StreamAgent, destroy_item);

View File

@ -145,6 +145,18 @@ StreamClipItem *stream_clip_item_new(DisplayChannelClient* dcc, StreamAgent *age
return item;
}
void stream_clip_item_unref(DisplayChannelClient *dcc, StreamClipItem *item)
{
DisplayChannel *display = DCC_TO_DC(dcc);
if (--item->refs != 0)
return;
stream_agent_unref(display, item->stream_agent);
free(item->rects);
free(item);
}
static int is_stream_start(Drawable *drawable)
{
return ((drawable->frames_count >= RED_STREAM_FRAMES_START_CONDITION) &&

View File

@ -107,8 +107,10 @@ typedef struct StreamClipItem {
SpiceClipRects *rects;
} StreamClipItem;
StreamClipItem *stream_clip_item_new(DisplayChannelClient* dcc,
StreamAgent *agent);
StreamClipItem * stream_clip_item_new (DisplayChannelClient* dcc,
StreamAgent *agent);
void stream_clip_item_unref (DisplayChannelClient *dcc,
StreamClipItem *item);
typedef struct ItemTrace {
red_time_t time;