Allows reds_core_timer_remove to accept NULL for timer

Most of the times the check is done externally
so moving inside the function reduce the code.
This is similar to the way free(3) works.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Pavel Grunt <pgrunt@redhat.com>
This commit is contained in:
Frediano Ziglio 2016-11-24 17:27:17 +00:00
parent ab77c22ec5
commit 8da22558b7
4 changed files with 19 additions and 24 deletions

View File

@ -176,10 +176,8 @@ static void red_char_device_client_free(RedCharDevice *dev,
{
GList *l, *next;
if (dev_client->wait_for_tokens_timer) {
reds_core_timer_remove(dev->priv->reds, dev_client->wait_for_tokens_timer);
dev_client->wait_for_tokens_timer = NULL;
}
reds_core_timer_remove(dev->priv->reds, dev_client->wait_for_tokens_timer);
dev_client->wait_for_tokens_timer = NULL;
g_queue_free_full(dev_client->send_queue, (GDestroyNotify)red_pipe_item_unref);
@ -990,10 +988,9 @@ static void red_char_device_init_device_instance(RedCharDevice *self)
g_return_if_fail(self->priv->reds);
if (self->priv->write_to_dev_timer) {
reds_core_timer_remove(self->priv->reds, self->priv->write_to_dev_timer);
self->priv->write_to_dev_timer = NULL;
}
reds_core_timer_remove(self->priv->reds, self->priv->write_to_dev_timer);
self->priv->write_to_dev_timer = NULL;
if (self->priv->sin == NULL) {
return;
}
@ -1081,10 +1078,9 @@ red_char_device_finalize(GObject *object)
{
RedCharDevice *self = RED_CHAR_DEVICE(object);
if (self->priv->write_to_dev_timer) {
reds_core_timer_remove(self->priv->reds, self->priv->write_to_dev_timer);
self->priv->write_to_dev_timer = NULL;
}
reds_core_timer_remove(self->priv->reds, self->priv->write_to_dev_timer);
self->priv->write_to_dev_timer = NULL;
write_buffers_queue_free(&self->priv->write_queue);
write_buffers_queue_free(&self->priv->write_bufs_pool);
self->priv->cur_pool_size = 0;

View File

@ -625,9 +625,8 @@ inputs_channel_finalize(GObject *object)
InputsChannel *self = INPUTS_CHANNEL(object);
RedsState *reds = red_channel_get_server(RED_CHANNEL(self));
if (self->key_modifiers_timer) {
reds_core_timer_remove(reds, self->key_modifiers_timer);
}
reds_core_timer_remove(reds, self->key_modifiers_timer);
G_OBJECT_CLASS(inputs_channel_parent_class)->finalize(object);
}

View File

@ -189,9 +189,7 @@ static void main_channel_client_finalize(GObject *object)
RedsState *reds =
red_channel_get_server(red_channel_client_get_channel(RED_CHANNEL_CLIENT(object)));
if (self->priv->ping_timer) {
reds_core_timer_remove(reds, self->priv->ping_timer);
}
reds_core_timer_remove(reds, self->priv->ping_timer);
#endif
G_OBJECT_CLASS(main_channel_client_parent_class)->finalize(object);
}

View File

@ -3594,9 +3594,7 @@ SPICE_GNUC_VISIBLE void spice_server_destroy(SpiceServer *reds)
}
reds_cleanup(reds);
if (reds->mig_timer) {
reds_core_timer_remove(reds, reds->mig_timer);
}
reds_core_timer_remove(reds, reds->mig_timer);
/* remove the server from the list of servers so that we don't attempt to
* free it again at exit */
@ -4189,10 +4187,14 @@ void reds_core_timer_cancel(RedsState *reds,
void reds_core_timer_remove(RedsState *reds,
SpiceTimer *timer)
{
g_return_if_fail(reds != NULL);
g_return_if_fail(reds->core.timer_remove != NULL);
if (timer == NULL) {
return;
}
return reds->core.timer_remove(&reds->core, timer);
g_return_if_fail(reds != NULL);
g_return_if_fail(reds->core.timer_remove != NULL);
reds->core.timer_remove(&reds->core, timer);
}
void reds_update_client_mouse_allowed(RedsState *reds)