[Spice-devel] [PATCH spice-server 18/20] Allows reds_core_timer_remove to accept NULL for timer
Frediano Ziglio
fziglio at redhat.com
Thu Nov 24 17:39:05 UTC 2016
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 at redhat.com>
---
server/char-device.c | 20 ++++++++------------
server/inputs-channel.c | 5 ++---
server/main-channel-client.c | 4 +---
server/reds.c | 4 +++-
4 files changed, 14 insertions(+), 19 deletions(-)
diff --git a/server/char-device.c b/server/char-device.c
index 3b70066..45ce548 100644
--- a/server/char-device.c
+++ b/server/char-device.c
@@ -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;
diff --git a/server/inputs-channel.c b/server/inputs-channel.c
index 99c2888..bea0ddf 100644
--- a/server/inputs-channel.c
+++ b/server/inputs-channel.c
@@ -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);
}
diff --git a/server/main-channel-client.c b/server/main-channel-client.c
index 576b31f..15e168d 100644
--- a/server/main-channel-client.c
+++ b/server/main-channel-client.c
@@ -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);
}
diff --git a/server/reds.c b/server/reds.c
index d9af413..19af775 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -4212,7 +4212,9 @@ void reds_core_timer_remove(RedsState *reds,
g_return_if_fail(reds != NULL);
g_return_if_fail(reds->core.timer_remove != NULL);
- return reds->core.timer_remove(&reds->core, timer);
+ if (timer) {
+ reds->core.timer_remove(&reds->core, timer);
+ }
}
void reds_update_client_mouse_allowed(RedsState *reds)
--
2.9.3
More information about the Spice-devel
mailing list