diff options
| -rw-r--r-- | src/uca-camera.c | 11 | ||||
| -rw-r--r-- | test/test-mock.c | 10 | 
2 files changed, 21 insertions, 0 deletions
diff --git a/src/uca-camera.c b/src/uca-camera.c index ae8fea9..8bb7201 100644 --- a/src/uca-camera.c +++ b/src/uca-camera.c @@ -306,11 +306,22 @@ static void  uca_camera_finalize (GObject *object)  {      UcaCameraPrivate *priv; +    GParamSpec **props; +    guint n_props;      priv = UCA_CAMERA_GET_PRIVATE (object);      g_value_array_free (priv->h_binnings);      g_value_array_free (priv->v_binnings); +    /* We will reset property units of all subclassed objects  */ +    props = g_object_class_list_properties (G_OBJECT_GET_CLASS (object), &n_props); + +    for (guint i = 0; i < n_props; i++) { +        g_param_spec_set_qdata (props[i], UCA_UNIT_QUARK, NULL); +    } + +    g_free (props); +      G_OBJECT_CLASS (uca_camera_parent_class)->finalize (object);  } diff --git a/test/test-mock.c b/test/test-mock.c index facae53..de1e18d 100644 --- a/test/test-mock.c +++ b/test/test-mock.c @@ -221,6 +221,16 @@ test_signal (Fixture *fixture, gconstpointer data)      g_assert (success == TRUE);  } +static void +test_overwriting_units (Fixture *fixture, gconstpointer data) +{ +    UcaUnit unit; + +    uca_camera_register_unit (fixture->camera, "frames-per-second", UCA_UNIT_PIXEL); +    unit = uca_camera_get_unit (fixture->camera, "frames-per-second"); +    g_assert (unit != UCA_UNIT_PIXEL); +} +  int main (int argc, char *argv[])  {  #if !(GLIB_CHECK_VERSION (2, 36, 0))  | 
