char device: use _reset_dev_instance() to set 'sin'

Internally, use the method to set the 'sin' member variable so that we
don't have to duplicate the g_object_notify() calls, and there are
consistent debug statements whenever this value is modified. This also
means that we need to handle NULL arguments to this function.

Acked-by: Frediano Ziglio <fziglio@redhat.com>
This commit is contained in:
Jonathon Jongsma 2016-04-13 10:46:16 -05:00
parent 82024257b6
commit 39b00dc71e

View File

@ -724,7 +724,8 @@ void red_char_device_reset_dev_instance(RedCharDevice *dev,
{
spice_debug("sin %p, char device %p", sin, dev);
dev->priv->sin = sin;
sin->st = dev;
if (sin)
sin->st = dev;
g_object_notify(G_OBJECT(dev), "sin");
}
@ -885,8 +886,7 @@ void red_char_device_reset(RedCharDevice *dev)
dev_client = SPICE_CONTAINEROF(client_item, RedCharDeviceClient, link);
red_char_device_client_send_queue_free(dev, dev_client);
}
dev->priv->sin = NULL;
g_object_notify(G_OBJECT(dev), "sin");
red_char_device_reset_dev_instance(dev, NULL);
}
void red_char_device_wakeup(RedCharDevice *dev)
@ -1109,7 +1109,7 @@ red_char_device_set_property(GObject *object,
switch (property_id)
{
case PROP_CHAR_DEV_INSTANCE:
self->priv->sin = g_value_get_pointer(value);
red_char_device_reset_dev_instance(self, g_value_get_pointer(value));
break;
case PROP_SPICE_SERVER:
self->priv->reds = g_value_get_pointer(value);