channel: do not call pipe_add with null items

If the creator was not able to produce the item, no need to call
pipe_add().

Signed-off-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Acked-by: Frediano Ziglio <fziglio@redhat>
This commit is contained in:
Marc-Andre Lureau 2016-01-14 22:01:07 +01:00 committed by Frediano Ziglio
parent e5fa7f4740
commit 3d9ea0bb6b

View File

@ -2233,7 +2233,7 @@ typedef int (*rcc_item_cond_t)(RedChannelClient *rcc, PipeItem *item);
* @channel: a channel
* @creator: a callback to create pipe item (not null)
* @data: the data to pass to the creator
* @pipe_add: a callback to add pipe items (not null)
* @pipe_add: a callback to add non-null pipe items (not null)
**/
static void red_channel_pipes_create_batch(RedChannel *channel,
new_pipe_item_t creator, void *data,
@ -2250,7 +2250,9 @@ static void red_channel_pipes_create_batch(RedChannel *channel,
RING_FOREACH_SAFE(link, next, &channel->clients) {
rcc = SPICE_CONTAINEROF(link, RedChannelClient, channel_link);
item = (*creator)(rcc, data, num++);
(*pipe_add)(rcc, item);
if (item) {
(*pipe_add)(rcc, item);
}
}
}