summaryrefslogtreecommitdiff
path: root/gtk/gtkcsswidgetnode.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2015-09-06 19:16:43 -0400
committerMatthias Clasen <mclasen@redhat.com>2015-09-06 19:16:43 -0400
commit4dc47c37145509d63482f11a39ec0bab559421c1 (patch)
treef3bbce31abbbea443b8105b430c1096056212fac /gtk/gtkcsswidgetnode.c
parent32001ec63854bfa0c11e4de319be41b14b2c44d7 (diff)
downloadgtk+-4dc47c37145509d63482f11a39ec0bab559421c1.tar.gz
Plug a leak
A type class reference gotten with g_type_class_ref must be released with g_type_class_unref, or else we leak.
Diffstat (limited to 'gtk/gtkcsswidgetnode.c')
-rw-r--r--gtk/gtkcsswidgetnode.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/gtk/gtkcsswidgetnode.c b/gtk/gtkcsswidgetnode.c
index 4e67b51c3c..f579c12353 100644
--- a/gtk/gtkcsswidgetnode.c
+++ b/gtk/gtkcsswidgetnode.c
@@ -145,6 +145,7 @@ static gboolean
widget_needs_widget_path (GtkWidget *widget)
{
static GetPathForChildFunc funcs[2];
+ GtkContainerClass *class;
GtkWidget *parent;
GetPathForChildFunc parent_func;
guint i;
@@ -152,8 +153,14 @@ widget_needs_widget_path (GtkWidget *widget)
if (G_UNLIKELY (funcs[0] == NULL))
{
i = 0;
- funcs[i++] = GTK_CONTAINER_CLASS (g_type_class_ref (GTK_TYPE_CONTAINER))->get_path_for_child;
- funcs[i++] = GTK_CONTAINER_CLASS (g_type_class_ref (GTK_TYPE_BOX))->get_path_for_child;
+
+ class = (GtkContainerClass*)g_type_class_ref (GTK_TYPE_CONTAINER);
+ funcs[i++] = class->get_path_for_child;
+ g_type_class_unref (class);
+
+ class = (GtkContainerClass*)g_type_class_ref (GTK_TYPE_BOX);
+ funcs[i++] = class->get_path_for_child;
+ g_type_class_unref (class);
g_assert (i == G_N_ELEMENTS (funcs));
}