diff --git a/gtk.supp b/gtk.supp index 1211eeea2c..927d6f102b 100644 --- a/gtk.supp +++ b/gtk.supp @@ -285,3 +285,11 @@ ... fun:g_intern_static_string } + +# Threads +{ + pthread + Memcheck:Leak + fun:calloc + fun:_dl_allocate_tls +} diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c index 3b1caa7125..43882cf385 100644 --- a/gtk/gtkcssprovider.c +++ b/gtk/gtkcssprovider.c @@ -1052,6 +1052,8 @@ gtk_css_provider_load_internal (GtkCssProvider *self, "Failed to import: %s", load_error->message); } + + g_error_free (load_error); } } diff --git a/lsan.supp b/lsan.supp index dddb9b91f6..32185fc61a 100644 --- a/lsan.supp +++ b/lsan.supp @@ -7,3 +7,4 @@ leak:libglib-2.0.so leak:libgio-2.0.so leak:libcairo.so leak:libpixman-1.so +leak:librsvg-2.so diff --git a/testsuite/gdk/pixbuf.c b/testsuite/gdk/pixbuf.c index 592f5d0d32..591444fd86 100644 --- a/testsuite/gdk/pixbuf.c +++ b/testsuite/gdk/pixbuf.c @@ -1,31 +1,42 @@ #include +static void +test_format (gconstpointer d) +{ + const char *f = d; + GSList *formats; + gboolean found; + + found = FALSE; + + formats = gdk_pixbuf_get_formats (); + + for (GSList *l = formats; l && !found; l = l->next) + { + GdkPixbufFormat *format = l->data; + char *name; + + name = gdk_pixbuf_format_get_name (format); + + if (strcmp (name, f) == 0) + found = TRUE; + + g_free (name); + } + + g_slist_free (formats); + + g_assert_true (found); +} + + int main (int argc, char *argv[]) { - GSList *formats; - gboolean have_png, have_jpeg; + g_test_init (&argc, &argv, NULL); - have_png = FALSE; - have_jpeg = FALSE; + g_test_add_data_func ("/pixbuf/format/png", "png", test_format); + g_test_add_data_func ("/pixbuf/format/jpeg", "jpeg", test_format); - formats = gdk_pixbuf_get_formats (); - - for (GSList *l = formats; l; l = l->next) - { - GdkPixbufFormat *format = l->data; - const char *name; - - name = gdk_pixbuf_format_get_name (format); - - if (strcmp (name, "png") == 0) - have_png = TRUE; - else if (strcmp (name, "jpeg") == 0) - have_jpeg = TRUE; - } - - if (!have_png || !have_jpeg) - return 1; - - return 0; + return g_test_run (); } diff --git a/testsuite/gtk/bitset.c b/testsuite/gtk/bitset.c index 110dc1401e..2c01912317 100644 --- a/testsuite/gtk/bitset.c +++ b/testsuite/gtk/bitset.c @@ -553,6 +553,9 @@ test_splice_overflow (void) compare = gtk_bitset_new_range (16, 1); g_assert_true (gtk_bitset_equals (set, compare)); + + gtk_bitset_unref (compare); + gtk_bitset_unref (set); } int diff --git a/testsuite/gtk/stringlist.c b/testsuite/gtk/stringlist.c index 63a1f6def4..93e9720d2c 100644 --- a/testsuite/gtk/stringlist.c +++ b/testsuite/gtk/stringlist.c @@ -167,7 +167,7 @@ test_create_builder (void) list = GTK_STRING_LIST (gtk_builder_get_object (builder, "list")); assert_model (list, "a b c"); - g_object_unref (list); + g_object_unref (builder); } static void