[Spice-devel] [PATCH 3.2/12] Make cursor_channel_disconnect a CursorChannel method
Christophe Fergeau
cfergeau at redhat.com
Fri Oct 30 03:45:23 PDT 2015
On Thu, Oct 29, 2015 at 04:54:39PM -0500, Jonathon Jongsma wrote:
> From: Marc-André Lureau <marcandre.lureau at gmail.com>
>
> The first argument should be CursorChannel* rather than RedChannel*
> since it's essentially a CursorChannel method.
>
> Signed-off-by: Jonathon Jongsma <jjongsma at redhat.com>
> ---
> server/cursor-channel.c | 4 +++-
> server/cursor-channel.h | 2 +-
> server/red_worker.c | 2 +-
> 3 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/server/cursor-channel.c b/server/cursor-channel.c
> index 2d7afc6..219c1da 100644
> --- a/server/cursor-channel.c
> +++ b/server/cursor-channel.c
> @@ -138,8 +138,10 @@ static void red_reset_cursor_cache(RedChannelClient *rcc)
> red_cursor_cache_reset(RCC_TO_CCC(rcc), CLIENT_CURSOR_CACHE_SIZE);
> }
>
> -void cursor_channel_disconnect(RedChannel *channel)
> +void cursor_channel_disconnect(CursorChannel *cursor)
> {
> + RedChannel *channel = (RedChannel *)cursor;
> +
> if (!channel || !red_channel_is_connected(channel)) {
> return;
> }
> diff --git a/server/cursor-channel.h b/server/cursor-channel.h
> index 8b49df7..c7eee81 100644
> --- a/server/cursor-channel.h
> +++ b/server/cursor-channel.h
> @@ -79,7 +79,7 @@ typedef struct CursorChannel {
> G_STATIC_ASSERT(sizeof(CursorItem) <= QXL_CURSUR_DEVICE_DATA_SIZE);
>
> CursorChannel* cursor_channel_new (RedWorker *worker, int migrate);
> -void cursor_channel_disconnect (RedChannel *channel);
> +void cursor_channel_disconnect (CursorChannel *cursor);
> void cursor_channel_reset (CursorChannel *cursor);
> void cursor_channel_process_cmd (CursorChannel *cursor, RedCursorCmd *cursor_cmd,
> uint32_t group_id);
> diff --git a/server/red_worker.c b/server/red_worker.c
> index 96c0f14..2543713 100644
> --- a/server/red_worker.c
> +++ b/server/red_worker.c
> @@ -8908,7 +8908,7 @@ static inline void flush_cursor_commands(RedWorker *worker)
> red_channel_send(channel);
> if (red_now() >= end_time) {
> spice_warning("flush cursor timeout");
> - cursor_channel_disconnect(channel);
> + cursor_channel_disconnect(worker->cursor_channel);
> worker->cursor_channel = NULL;
> } else {
> sleep_count++;
Fwiw, this method has 'channel', 'cursor_red_channel' (both are
RedChannel *) and it also references 'worker->cursor_channel' as a
CursorChannel. Ultimately these 3 variables are referencing to the same
memory location, would be less messy to have 2 (one RedChannel, one
CursorChannel) defined together, or not to have any and to use
worker->cursor_channel + cast if needed everywhere.
Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20151030/64a0352a/attachment.sig>
More information about the Spice-devel
mailing list