diff options
author | Christopher James Halse Rogers <raof@ubuntu.com> | 2019-08-19 18:06:11 +1000 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2019-08-19 13:05:13 +0100 |
commit | 1ce26daa5bc786869dac6ba309b698480ef31bac (patch) | |
tree | 973868bafb1618785e35a8e831b1519a231eb674 | |
parent | 513bfa4783d0a630c226ee40638ab346c0d1c229 (diff) | |
download | colord-1ce26daa5bc786869dac6ba309b698480ef31bac.tar.gz |
tests: Fix cd-sensor-dummy
`g_autoptr(GTask) task` will be unreffed when it leaves scope. If we want
it to be available in 2 seconds' time in the idle callback we'll need to
explicitly transfer ownership.
-rw-r--r-- | src/sensors/dummy/cd-sensor-dummy.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/sensors/dummy/cd-sensor-dummy.c b/src/sensors/dummy/cd-sensor-dummy.c index cd031ce..437bddf 100644 --- a/src/sensors/dummy/cd-sensor-dummy.c +++ b/src/sensors/dummy/cd-sensor-dummy.c @@ -41,8 +41,9 @@ cd_sensor_dummy_get_private (CdSensor *sensor) } static gboolean -cd_sensor_get_ambient_wait_cb (GTask *task) +cd_sensor_get_ambient_wait_cb (GTask *unowned_task) { + g_autoptr(GTask) task = unowned_task; CdColorXYZ *sample = NULL; sample = cd_color_xyz_new (); @@ -55,8 +56,9 @@ cd_sensor_get_ambient_wait_cb (GTask *task) } static gboolean -cd_sensor_get_sample_wait_cb (GTask *task) +cd_sensor_get_sample_wait_cb (GTask *unowned_task) { + g_autoptr(GTask) task = unowned_task; CdSensor *sensor = CD_SENSOR (g_task_get_source_object (task)); CdSensorDummyPrivate *priv = cd_sensor_dummy_get_private (sensor); CdColorXYZ *sample = NULL; @@ -101,9 +103,9 @@ cd_sensor_get_sample_async (CdSensor *sensor, /* just complete in idle */ if (cap != CD_SENSOR_CAP_AMBIENT) - g_timeout_add_seconds (2, (GSourceFunc) cd_sensor_get_sample_wait_cb, task); + g_timeout_add_seconds (2, (GSourceFunc) cd_sensor_get_sample_wait_cb, g_steal_pointer(&task)); else - g_timeout_add_seconds (2, (GSourceFunc) cd_sensor_get_ambient_wait_cb, task); + g_timeout_add_seconds (2, (GSourceFunc) cd_sensor_get_ambient_wait_cb, g_steal_pointer(&task)); } CdColorXYZ * |