From: Christian Persch Date: Tue, 8 Jun 2010 11:36:58 +0000 (+0200) Subject: Simplify variant builder X-Git-Tag: 2.25.9~93 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2ab9a07ec79b7dd979253340cf7a471048be0c8f;p=platform%2Fupstream%2Fglib.git Simplify variant builder Build the full return value with one builder, and don't unref the unowned return value! Bug #620954. --- diff --git a/gio/gdbusapplication.c b/gio/gdbusapplication.c index 8b17ce4..00f3213 100644 --- a/gio/gdbusapplication.c +++ b/gio/gdbusapplication.c @@ -51,22 +51,19 @@ application_dbus_method_call (GDBusConnection *connection, GHashTableIter iter; GApplicationAction *value; GVariantBuilder builder; - GVariant *return_args; - GVariant *result; - g_variant_builder_init (&builder, G_VARIANT_TYPE_ARRAY); + g_variant_builder_init (&builder, G_VARIANT_TYPE ("(a{s(sb)})")); + g_variant_builder_open (&builder, G_VARIANT_TYPE ("a{s(sb)}")); g_hash_table_iter_init (&iter, app->priv->actions); while (g_hash_table_iter_next (&iter, NULL, (gpointer *)&value)) g_variant_builder_add (&builder, "{s(sb)}", value->name, value->description ? value->description : "", value->enabled); + g_variant_builder_close (&builder); - result = g_variant_builder_end (&builder); - return_args = g_variant_new_tuple (&result, 1); - g_dbus_method_invocation_return_value (invocation, return_args); - g_variant_unref (return_args); - g_variant_unref (result); + g_dbus_method_invocation_return_value (invocation, + g_variant_builder_end (&builder)); } else if (strcmp (method_name, "InvokeAction") == 0) {