[gnome-panel/gnome-3-18] panel-applet-container: remove floating reference from data->parameters
- From: Sebastian Geiger <segeiger src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-panel/gnome-3-18] panel-applet-container: remove floating reference from data->parameters
- Date: Sun, 7 Feb 2016 17:32:49 +0000 (UTC)
commit b5ad32bd79341264cc88b2c002df2bfc5479e263
Author: Sebastian Geiger <sbastig gmx net>
Date: Sun Feb 7 16:20:30 2016 +0100
panel-applet-container: remove floating reference from data->parameters
GVariant uses a floating reference by default. But we need to make
sure the reference stays valid during the whole life time of the
data struct.
.../panel-applet-container.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
---
diff --git a/gnome-panel/libpanel-applet-private/panel-applet-container.c
b/gnome-panel/libpanel-applet-private/panel-applet-container.c
index fea6bfe..af57ee3 100644
--- a/gnome-panel/libpanel-applet-private/panel-applet-container.c
+++ b/gnome-panel/libpanel-applet-private/panel-applet-container.c
@@ -427,6 +427,8 @@ applet_factory_data_free (AppletFactoryData *data)
if (data->cancellable)
g_object_unref (data->cancellable);
+ g_variant_unref (data->parameters);
+
g_free (data);
}
@@ -470,6 +472,7 @@ panel_applet_container_get_applet (PanelAppletContainer *container,
{
GTask *task;
AppletFactoryData *data;
+ GVariant *parameters;
gint screen_number;
gchar *bus_name;
gchar *factory_id;
@@ -495,11 +498,12 @@ panel_applet_container_get_applet (PanelAppletContainer *container,
/* we can't use the screen of the container widget since it's not in a
* widget hierarchy yet */
screen_number = gdk_screen_get_number (screen);
+ parameters = g_variant_new ("(si*)", applet_id, screen_number, props);
data = g_new (AppletFactoryData, 1);
data->task = task;
data->factory_id = factory_id;
- data->parameters = g_variant_new ("(si*)", applet_id, screen_number, props);
+ data->parameters = g_variant_ref_sink (parameters);
data->cancellable = cancellable ? g_object_ref (cancellable) : NULL;
bus_name = g_strdup_printf (PANEL_APPLET_BUS_NAME, factory_id);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]