[aravis] camera: reverse the order of pixel format display names



commit 2de71b11b8c17d65f42bd0bcb4c1f21e332712f2
Author: Jure Varlec <jure varlec ad-vega si>
Date:   Wed Sep 19 17:33:19 2012 +0200

    camera: reverse the order of pixel format display names
    
    Other functions that return lists construct them by prepending,
    but they don't reverse the result.
    arv_camera_get_available_pixel_formats_as_display_names is changed
    to match this behaviour.

 src/arvcamera.c |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)
---
diff --git a/src/arvcamera.c b/src/arvcamera.c
index c3fa165..de3411b 100644
--- a/src/arvcamera.c
+++ b/src/arvcamera.c
@@ -425,6 +425,7 @@ arv_camera_get_available_pixel_formats_as_display_names (ArvCamera *camera, guin
 {
 	ArvGcNode *node;
 	const GSList *entries, *iter;
+	GSList *available_entries = NULL;
 	const char **strings;
 	const char *string = NULL;
 	gboolean is_available, is_implemented;
@@ -441,9 +442,7 @@ arv_camera_get_available_pixel_formats_as_display_names (ArvCamera *camera, guin
 	else
 		return NULL;
 
-	strings = g_new (const char *, g_slist_length ((GSList*)entries));
-	i = 0;
-	for (iter = entries; iter != NULL; iter = iter->next) {
+	for (i = 0, iter = entries; iter != NULL; iter = iter->next) {
 		is_available = arv_gc_feature_node_is_available (iter->data, NULL);
 		is_implemented = arv_gc_feature_node_is_implemented (iter->data, NULL);
 		if (is_available && is_implemented) {
@@ -451,13 +450,18 @@ arv_camera_get_available_pixel_formats_as_display_names (ArvCamera *camera, guin
 			if (string == NULL)
 				string = arv_gc_feature_node_get_name (iter->data);
 			if (string == NULL) {
-				g_free (strings);
+				g_slist_free (available_entries);
 				return NULL;
 			}
-			strings[i++] = string;
+			available_entries = g_slist_prepend (available_entries, (gpointer)string);
+			i++;
 		}
 	}
 
+	strings = g_new (const char *, i);
+	for (i = 0, iter = available_entries; iter != NULL; iter = iter->next, i++)
+		strings[i] = iter->data;
+
 	*n_pixel_formats = i;
 	return strings;
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]