diff options
author | Matthias Clasen <mclasen@redhat.com> | 2015-09-06 19:16:43 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2015-09-06 19:16:43 -0400 |
commit | 4dc47c37145509d63482f11a39ec0bab559421c1 (patch) | |
tree | f3bbce31abbbea443b8105b430c1096056212fac /gtk/gtkcsswidgetnode.c | |
parent | 32001ec63854bfa0c11e4de319be41b14b2c44d7 (diff) | |
download | gtk+-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.c | 11 |
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)); } |