ack

On Mon, Feb 7, 2011 at 7:19 PM, Alon Levy <al...@redhat.com> wrote:
> ---
>  server/red_worker.c |   34 +++++++++++++++++++++-------------
>  1 files changed, 21 insertions(+), 13 deletions(-)
>
> diff --git a/server/red_worker.c b/server/red_worker.c
> index 0ed46e9..6bd8bc2 100644
> --- a/server/red_worker.c
> +++ b/server/red_worker.c
> @@ -8163,13 +8163,14 @@ static void red_send_local_cursor(CursorChannel 
> *cursor_channel, LocalCursor *cu
>     RedChannel *channel;
>     SpiceMsgCursorSet cursor_set;
>     AddBufInfo info;
> +    RedWorker *worker = cursor_channel->common.worker;
>
>     ASSERT(cursor_channel);
>
>     channel = &cursor_channel->common.base;
>     channel->send_data.header->type = SPICE_MSG_CURSOR_SET;
>     cursor_set.position = cursor->position;
> -    cursor_set.visible = cursor_channel->common.worker->cursor_visible;
> +    cursor_set.visible = worker->cursor_visible;
>
>     fill_cursor(cursor_channel, &cursor_set.cursor, &cursor->base, &info);
>     spice_marshall_msg_cursor_set(channel->send_data.marshaller, &cursor_set);
> @@ -8196,10 +8197,12 @@ static void red_send_cursor(CursorChannel 
> *cursor_channel, CursorItem *cursor)
>     RedChannel *channel;
>     RedCursorCmd *cmd;
>     SpiceMarshaller *m;
> +    RedWorker *worker;
>
>     ASSERT(cursor_channel);
>
>     channel = &cursor_channel->common.base;
> +    worker = cursor_channel->common.worker;
>     m = channel->send_data.marshaller;
>
>     cmd = cursor->red_cursor;
> @@ -8219,7 +8222,7 @@ static void red_send_cursor(CursorChannel 
> *cursor_channel, CursorItem *cursor)
>
>             channel->send_data.header->type = SPICE_MSG_CURSOR_SET;
>             cursor_set.position = cmd->u.set.position;
> -            cursor_set.visible = 
> cursor_channel->common.worker->cursor_visible;
> +            cursor_set.visible = worker->cursor_visible;
>
>             fill_cursor(cursor_channel, &cursor_set.cursor, cursor, &info);
>             spice_marshall_msg_cursor_set(m, &cursor_set);
> @@ -8540,17 +8543,19 @@ static void red_disconnect_channel(RedChannel 
> *channel)
>  static void red_disconnect_display(RedChannel *channel)
>  {
>     DisplayChannel *display_channel;
> +    CommonChannel *common = SPICE_CONTAINEROF(channel, CommonChannel, base);
> +    RedWorker *worker;
>
>     if (!channel || !channel->peer) {
>         return;
>     }
> -
> +    worker = common->worker;
>     display_channel = (DisplayChannel *)channel;
> -    ASSERT(display_channel == 
> display_channel->common.worker->display_channel);
> +    ASSERT(display_channel == worker->display_channel);
>  #ifdef COMPRESS_STAT
>     print_compress_stats(display_channel);
>  #endif
> -    display_channel->common.worker->display_channel = NULL;
> +    worker->display_channel = NULL;
>     red_display_unshare_stream_buf(display_channel);
>     red_release_pixmap_cache(display_channel);
>     red_release_glz(display_channel);
> @@ -9962,6 +9967,8 @@ static void handle_dev_input(EventListener *listener, 
> uint32_t events)
>  {
>     RedWorker *worker = SPICE_CONTAINEROF(listener, RedWorker, dev_listener);
>     RedWorkerMessage message;
> +    RedChannel *cursor_red_channel = &worker->cursor_channel->common.base;
> +    RedChannel *display_red_channel = &worker->display_channel->common.base;
>     int ring_is_empty;
>
>     read_message(worker->channel, &message);
> @@ -9980,8 +9987,9 @@ static void handle_dev_input(EventListener *listener, 
> uint32_t events)
>             display_channel_push(worker);
>         }
>         if (worker->qxl->st->qif->flush_resources(worker->qxl) == 0) {
> -            red_printf("oom current %u pipe %u", worker->current_size, 
> worker->display_channel ?
> -                       worker->display_channel->common.base.pipe_size : 0);
> +            red_printf("oom current %u pipe %u", worker->current_size,
> +                       worker->display_channel ?
> +                       display_red_channel->pipe_size : 0);
>             red_free_some(worker);
>             worker->qxl->st->qif->flush_resources(worker->qxl);
>         }
> @@ -9995,11 +10003,11 @@ static void handle_dev_input(EventListener 
> *listener, uint32_t events)
>
>         red_wait_outgoing_item((RedChannel *)worker->cursor_channel);
>         if (worker->cursor_channel) {
> -            red_pipe_add_type(&worker->cursor_channel->common.base, 
> PIPE_ITEM_TYPE_INVAL_CURSOR_CACHE);
> -            if (!worker->cursor_channel->common.base.migrate) {
> -                red_pipe_add_verb(&worker->cursor_channel->common.base, 
> SPICE_MSG_CURSOR_RESET);
> +            red_pipe_add_type(cursor_red_channel, 
> PIPE_ITEM_TYPE_INVAL_CURSOR_CACHE);
> +            if (!cursor_red_channel->migrate) {
> +                red_pipe_add_verb(cursor_red_channel, 
> SPICE_MSG_CURSOR_RESET);
>             }
> -            ASSERT(!worker->cursor_channel->common.base.send_data.item);
> +            ASSERT(!cursor_red_channel->send_data.item);
>
>             worker->cursor_visible = TRUE;
>             worker->cursor_position.x = worker->cursor_position.y = 0;
> @@ -10063,10 +10071,10 @@ static void handle_dev_input(EventListener 
> *listener, uint32_t events)
>         red_printf("start");
>         ASSERT(!worker->running);
>         if (worker->cursor_channel) {
> -            worker->cursor_channel->common.base.migrate = FALSE;
> +            cursor_red_channel->migrate = FALSE;
>         }
>         if (worker->display_channel) {
> -            worker->display_channel->common.base.migrate = FALSE;
> +            display_red_channel->migrate = FALSE;
>         }
>         worker->running = TRUE;
>         break;
> --
> 1.7.4
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
>



-- 
Marc-André Lureau
_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to