summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2016-04-18 20:40:38 +0100
committerRichard Hughes <richard@hughsie.com>2016-04-18 20:41:17 +0100
commit5256a11638c797809c183f2e468475f6a5fb7a52 (patch)
tree35667e41ab0db707dbc1d70225255c52882a8848
parent8a5eaac276ffe16e81c58994989ec7319ef00bf2 (diff)
downloadcolord-5256a11638c797809c183f2e468475f6a5fb7a52.tar.gz
libcolord: Fix an assert failure when connecting to sensors
Do not manually disconnect this as g_signal_connect_object() does this already. Hopefully fixes https://github.com/hughsie/colord/issues/23
-rw-r--r--lib/colord/cd-device.c12
-rw-r--r--lib/colord/cd-profile.c9
-rw-r--r--lib/colord/cd-sensor.c12
3 files changed, 3 insertions, 30 deletions
diff --git a/lib/colord/cd-device.c b/lib/colord/cd-device.c
index f1cae0f..3882d5e 100644
--- a/lib/colord/cd-device.c
+++ b/lib/colord/cd-device.c
@@ -2235,7 +2235,6 @@ cd_device_finalize (GObject *object)
{
CdDevice *device = CD_DEVICE (object);
CdDevicePrivate *priv = GET_PRIVATE (device);
- guint ret;
g_return_if_fail (CD_IS_DEVICE (object));
@@ -2249,17 +2248,8 @@ cd_device_finalize (GObject *object)
g_free (priv->vendor);
g_strfreev (priv->profiling_inhibitors);
g_ptr_array_unref (priv->profiles);
- if (priv->proxy != NULL) {
- ret = g_signal_handlers_disconnect_by_func (priv->proxy,
- G_CALLBACK (cd_device_dbus_signal_cb),
- device);
-// g_assert (ret > 0);
- ret = g_signal_handlers_disconnect_by_func (priv->proxy,
- G_CALLBACK (cd_device_dbus_properties_changed_cb),
- device);
-// g_assert (ret > 0);
+ if (priv->proxy != NULL)
g_object_unref (priv->proxy);
- }
G_OBJECT_CLASS (cd_device_parent_class)->finalize (object);
}
diff --git a/lib/colord/cd-profile.c b/lib/colord/cd-profile.c
index d5762a4..5e3585c 100644
--- a/lib/colord/cd-profile.c
+++ b/lib/colord/cd-profile.c
@@ -1489,15 +1489,8 @@ cd_profile_finalize (GObject *object)
g_free (priv->format);
g_free (priv->title);
g_strfreev (priv->warnings);
- if (priv->proxy != NULL) {
- g_signal_handlers_disconnect_by_func (priv->proxy,
- G_CALLBACK (cd_profile_dbus_signal_cb),
- profile);
- g_signal_handlers_disconnect_by_func (priv->proxy,
- G_CALLBACK (cd_profile_dbus_properties_changed_cb),
- profile);
+ if (priv->proxy != NULL)
g_object_unref (priv->proxy);
- }
G_OBJECT_CLASS (cd_profile_parent_class)->finalize (object);
}
diff --git a/lib/colord/cd-sensor.c b/lib/colord/cd-sensor.c
index 21b6729..181fae1 100644
--- a/lib/colord/cd-sensor.c
+++ b/lib/colord/cd-sensor.c
@@ -1612,7 +1612,6 @@ cd_sensor_finalize (GObject *object)
{
CdSensor *sensor = CD_SENSOR (object);
CdSensorPrivate *priv = GET_PRIVATE (sensor);
- guint ret;
g_return_if_fail (CD_IS_SENSOR (object));
@@ -1623,17 +1622,8 @@ cd_sensor_finalize (GObject *object)
g_free (priv->vendor);
g_hash_table_unref (priv->options);
g_hash_table_destroy (priv->metadata);
- if (priv->proxy != NULL) {
- ret = g_signal_handlers_disconnect_by_func (priv->proxy,
- G_CALLBACK (cd_sensor_dbus_signal_cb),
- sensor);
- g_assert (ret > 0);
- ret = g_signal_handlers_disconnect_by_func (priv->proxy,
- G_CALLBACK (cd_sensor_dbus_properties_changed_cb),
- sensor);
- g_assert (ret > 0);
+ if (priv->proxy != NULL)
g_object_unref (priv->proxy);
- }
G_OBJECT_CLASS (cd_sensor_parent_class)->finalize (object);
}