From 11b28224b52352acae9301065f220a220f438af8 Mon Sep 17 00:00:00 2001 From: Youness Alaoui Date: Thu, 29 Nov 2012 20:10:19 -0500 Subject: [PATCH] androidcamera: Small refactor in case open doesn't throw an exception but returns null --- .../gst-android-hardware-camera.c | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/sys/androidcamera/gst-android-hardware-camera.c b/sys/androidcamera/gst-android-hardware-camera.c index fada85e6f9..e77c473fc9 100644 --- a/sys/androidcamera/gst-android-hardware-camera.c +++ b/sys/androidcamera/gst-android-hardware-camera.c @@ -1790,15 +1790,16 @@ gst_ah_camera_get_parameters (GstAHCamera * self) GstAHCParameters *params = NULL; object = AHC_CALL (return NULL, Object, getParameters); - - params = g_slice_new0 (GstAHCParameters); - params->object = (*env)->NewGlobalRef (env, object); - (*env)->DeleteLocalRef (env, object); - if (!params->object) { - GST_ERROR ("Failed to create global reference"); - (*env)->ExceptionClear (env); - g_slice_free (GstAHCParameters, params); - return NULL; + if (object) { + params = g_slice_new0 (GstAHCParameters); + params->object = (*env)->NewGlobalRef (env, object); + (*env)->DeleteLocalRef (env, object); + if (!params->object) { + GST_ERROR ("Failed to create global reference"); + (*env)->ExceptionClear (env); + g_slice_free (GstAHCParameters, params); + return NULL; + } } return params; @@ -1822,20 +1823,20 @@ gst_ah_camera_open (gint camera_id) GstAHCamera *camera = NULL; object = AHC_STATIC_CALL (goto done, Object, open, camera_id); - - camera = g_slice_new0 (GstAHCamera); - camera->object = (*env)->NewGlobalRef (env, object); - (*env)->DeleteLocalRef (env, object); - if (!camera->object) { - GST_ERROR ("Failed to create global reference"); - (*env)->ExceptionClear (env); - g_slice_free (GstAHCamera, camera); - goto done; + if (object) { + camera = g_slice_new0 (GstAHCamera); + camera->object = (*env)->NewGlobalRef (env, object); + (*env)->DeleteLocalRef (env, object); + if (!camera->object) { + GST_ERROR ("Failed to create global reference"); + (*env)->ExceptionClear (env); + g_slice_free (GstAHCamera, camera); + camera = NULL; + } } - return camera; done: - return NULL; + return camera; } gboolean