shell: Fix GVariantBuilder leak
When a GVariantBuilder is created with g_variant_builder_new(), it must be unref'ed with g_variant_builder_unref() when no longer needed. In this case, we can just use a local stack-allocated GVariantBuilder to avoid the leak. https://bugzilla.gnome.org/show_bug.cgi?id=751597
This commit is contained in:
parent
c84722248e
commit
c33ac8bca9
1 changed files with 5 additions and 4 deletions
|
@ -216,7 +216,7 @@ cc_application_command_line (GApplication *application,
|
||||||
const char *start_id;
|
const char *start_id;
|
||||||
GError *err = NULL;
|
GError *err = NULL;
|
||||||
GVariant *parameters;
|
GVariant *parameters;
|
||||||
GVariantBuilder *builder;
|
GVariantBuilder builder;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
start_id = start_panels[0];
|
start_id = start_panels[0];
|
||||||
|
@ -226,10 +226,11 @@ cc_application_command_line (GApplication *application,
|
||||||
else
|
else
|
||||||
g_debug ("No extra argument");
|
g_debug ("No extra argument");
|
||||||
|
|
||||||
builder = g_variant_builder_new (G_VARIANT_TYPE ("av"));
|
g_variant_builder_init (&builder, G_VARIANT_TYPE ("av"));
|
||||||
|
|
||||||
for (i = 1; start_panels[i] != NULL; i++)
|
for (i = 1; start_panels[i] != NULL; i++)
|
||||||
g_variant_builder_add (builder, "v", g_variant_new_string (start_panels[i]));
|
g_variant_builder_add (&builder, "v", g_variant_new_string (start_panels[i]));
|
||||||
parameters = g_variant_builder_end (builder);
|
parameters = g_variant_builder_end (&builder);
|
||||||
if (!cc_shell_set_active_panel_from_id (CC_SHELL (self->priv->window), start_id, parameters, &err))
|
if (!cc_shell_set_active_panel_from_id (CC_SHELL (self->priv->window), start_id, parameters, &err))
|
||||||
{
|
{
|
||||||
g_warning ("Could not load setting panel \"%s\": %s", start_id,
|
g_warning ("Could not load setting panel \"%s\": %s", start_id,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue