[Spice-devel] [PATCH] cursor: fix wrong logic when initializing the channel
Frediano Ziglio
fziglio at redhat.com
Wed Nov 4 02:54:14 PST 2015
>
> It's a regression introduced by commit e601e920bd5. The logic error was
> introduced when trying to achieve the following code[0]. but rewritten
> to prefer an early return.
>
> [0]:
> if (cursor_is_connected(worker)
> && !COMMON_CHANNEL(worker->cursor_channel)->during_target_migrate) {
> red_channel_pipes_add_type(RED_CHANNEL(worker->cursor_channel),
> PIPE_ITEM_TYPE_CURSOR_INIT);
> }
>
> Signed-off-by: Fabiano FidĂȘncio <fidencio at redhat.com>
> ---
> server/cursor-channel.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/server/cursor-channel.c b/server/cursor-channel.c
> index ce360e1..23d5b5a 100644
> --- a/server/cursor-channel.c
> +++ b/server/cursor-channel.c
> @@ -545,7 +545,7 @@ void cursor_channel_init(CursorChannel *cursor,
> CursorChannelClient *client)
> spice_return_if_fail(cursor);
>
> if (red_channel_is_connected(&cursor->common.base)
> - || COMMON_CHANNEL(cursor)->during_target_migrate) {
> + && COMMON_CHANNEL(cursor)->during_target_migrate) {
> spice_debug("during_target_migrate: skip init");
> return;
> }
> --
> 2.5.0
The original code was
if (cursor_is_connected(worker)
&& !COMMON_CHANNEL(worker->cursor_channel)->during_target_migrate) {
red_channel_pipes_add_type(RED_CHANNEL(worker->cursor_channel),
PIPE_ITEM_TYPE_CURSOR_INIT);
}
which was wrongly negated as
if (red_channel_is_connected(&cursor->common.base)
|| COMMON_CHANNEL(cursor)->during_target_migrate) {
spice_debug("during_target_migrate: skip init");
return;
}
I think the right code should be
if (!red_channel_is_connected(&cursor->common.base)
|| COMMON_CHANNEL(cursor)->during_target_migrate) {
spice_debug("during_target_migrate: skip init");
return;
}
Frediano
More information about the Spice-devel
mailing list