utils: make gsignond_array_to_sequence() argument really (transfer full)
authorJussi Laako <jussi.laako@linux.intel.com>
Thu, 28 Nov 2013 16:05:06 +0000 (18:05 +0200)
committerJussi Laako <jussi.laako@linux.intel.com>
Thu, 28 Nov 2013 16:05:06 +0000 (18:05 +0200)
src/common/gsignond-identity-info.c
src/common/gsignond-utils.c

index 1a0d92f..2b163ca 100644 (file)
@@ -820,10 +820,9 @@ gsignond_identity_info_get_methods (GSignondIdentityInfo *info)
         g_variant_iter_init (&iter, var);
         while (g_variant_iter_next (&iter, "{s^as}", &vmethod, &vmechanisms))
         {
-            /* ownership of all content is transferred */
+            /* ownership is transferred */
             seq = gsignond_array_to_sequence (vmechanisms);
             g_hash_table_insert (methods, vmethod, seq);
-            g_free (vmechanisms);
         }
     }
     return methods;
@@ -920,11 +919,10 @@ gsignond_identity_info_get_mechanisms (
         g_variant_iter_init (&iter, var);
         while (g_variant_iter_next (&iter, "{s^as}", &vmethod, &vmechanisms))
         {
-            /* ownership of content is transferred */
+            /* ownership is transferred */
             if (vmethod != NULL && g_strcmp0 (vmethod, method) == 0) {
                 mechanisms = gsignond_array_to_sequence (vmechanisms);
                 g_free (vmethod);
-                g_free (vmechanisms);
                 break;
             }
             g_free (vmethod); vmethod = NULL;
index 9eab088..90beeaf 100644 (file)
@@ -368,18 +368,20 @@ gsignond_sequence_to_array (GSequence *seq)
 GSequence *
 gsignond_array_to_sequence (gchar **items)
 {
+    gchar **item_iter = items;
     GSequence *seq = NULL;
 
     if (!items) return NULL;
 
     seq = g_sequence_new ((GDestroyNotify) g_free);
-    while (*items) {
+    while (*item_iter) {
         g_sequence_insert_sorted (seq,
-                                  *items,
+                                  *item_iter,
                                   (GCompareDataFunc) _compare_strings,
                                   NULL);
-        items++;
+        item_iter++;
     }
+    g_free (items);
     return seq;
 }