diff options
-rw-r--r-- | src/uca-camera.c | 14 | ||||
-rw-r--r-- | test/test-mock.c | 1 |
2 files changed, 11 insertions, 4 deletions
diff --git a/src/uca-camera.c b/src/uca-camera.c index f517d87..a7b266a 100644 --- a/src/uca-camera.c +++ b/src/uca-camera.c @@ -211,12 +211,15 @@ void uca_camera_start_recording(UcaCamera *camera, GError **error) return; } - (*klass->start_recording)(camera, error); + GError *tmp_error = NULL; + (*klass->start_recording)(camera, &tmp_error); - if (error == NULL) { + if (tmp_error == NULL) { camera->priv->recording = TRUE; g_object_notify_by_pspec(G_OBJECT(camera), camera_properties[PROP_IS_RECORDING]); } + else + g_propagate_error(error, tmp_error); } void uca_camera_stop_recording(UcaCamera *camera, GError **error) @@ -234,12 +237,15 @@ void uca_camera_stop_recording(UcaCamera *camera, GError **error) return; } - (*klass->stop_recording)(camera, error); + GError *tmp_error = NULL; + (*klass->stop_recording)(camera, &tmp_error); - if (error == NULL) { + if (tmp_error == NULL) { camera->priv->recording = FALSE; g_object_notify_by_pspec(G_OBJECT(camera), camera_properties[PROP_IS_RECORDING]); } + else + g_propagate_error(error, tmp_error); } void uca_camera_set_grab_func(UcaCamera *camera, UcaCameraGrabFunc func) diff --git a/test/test-mock.c b/test/test-mock.c index ceb4b20..5831951 100644 --- a/test/test-mock.c +++ b/test/test-mock.c @@ -33,6 +33,7 @@ static void test_recording(Fixture *fixture, gconstpointer data) uca_camera_stop_recording(camera, &error); g_assert(error != NULL); + g_error_free(error); error = NULL; uca_camera_start_recording(camera, &error); |