[Spice-devel] [PATCH 05/11] worker: move some cursor code to cursor-channel.c
Jonathon Jongsma
jjongsma at redhat.com
Wed Oct 28 14:03:16 PDT 2015
ACK. Two minor comments below.
On Tue, 2015-10-27 at 19:19 +0000, Frediano Ziglio wrote:
> From: Marc-André Lureau <marcandre.lureau at gmail.com>
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau at gmail.com>
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
> server/Makefile.am | 1 +
> server/cursor-channel.c | 464 ++++++++++++++++++++++++++++++++++++
> server/cursor-channel.h | 26 +++
> server/red_worker.c | 611 +++++---------------------------------
> ----------
> server/red_worker.h | 92 ++++++++
> 5 files changed, 635 insertions(+), 559 deletions(-)
> create mode 100644 server/cursor-channel.c
>
....
> +// TODO: share code between before/after_push since most of the
> items need the same
> +// release
> +static void
> cursor_channel_client_release_item_before_push(CursorChannelClient
> *ccc,
> + PipeItem
> *item)
> +{
> + switch (item->type) {
> + case PIPE_ITEM_TYPE_CURSOR: {
> + CursorPipeItem *cursor_pipe_item = SPICE_CONTAINEROF(item,
> CursorPipeItem, base);
> + put_cursor_pipe_item(ccc, cursor_pipe_item);
> + break;
> + }
> + case PIPE_ITEM_TYPE_INVAL_ONE:
> + case PIPE_ITEM_TYPE_VERB:
> + case PIPE_ITEM_TYPE_CURSOR_INIT:
> + case PIPE_ITEM_TYPE_INVAL_CURSOR_CACHE:
> + free(item);
> + break;
> + default:
> + spice_error("invalid pipe item type");
> + }
> +}
> +
> +static void
> cursor_channel_client_release_item_after_push(CursorChannelClient
> *ccc,
> + PipeItem
> *item)
> +{
> + switch (item->type) {
> + case PIPE_ITEM_TYPE_CURSOR: {
> + CursorPipeItem *cursor_pipe_item =
> SPICE_CONTAINEROF(item, CursorPipeItem, base);
> + put_cursor_pipe_item(ccc, cursor_pipe_item);
> + break;
> + }
> + default:
> + spice_critical("invalid item type");
This is an existing inconsistency, but here we use spice_critical(),
and just above in _before_push(), we use spice_error() for the same
situation. Would probably be good to choose one and be consistent, even
if they do behave the same with default settings...
>
> +static inline void red_marshall_inval(RedChannelClient *rcc,
> + SpiceMarshaller
> *base_marshaller, CacheItem *cach_item)
> +{
> + SpiceMsgDisplayInvalOne inval_one;
> +
> + red_channel_client_init_send_data(rcc, cach_item->inval_type,
> NULL);
> + inval_one.id = *(uint64_t *)&cach_item->id;
> +
> + spice_marshall_msg_cursor_inval_one(base_marshaller,
> &inval_one);
> +}
> +
Up above, this function was removed from red_worker.c and was added to
cursor-channel.c. Here it is being added back to red_worker.c again.
Probably this one can be removed?
More information about the Spice-devel
mailing list