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;
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;
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;
}