sources: Fix leaks in tests
authorStef Walter <stefw@gnome.org>
Sat, 9 Nov 2013 19:27:57 +0000 (20:27 +0100)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 16 Dec 2013 00:29:26 +0000 (19:29 -0500)
https://bugzilla.gnome.org/show_bug.cgi?id=711751

tests/sources.c

index 35edb85..9bd2b15 100644 (file)
@@ -54,6 +54,7 @@ thread_pool_attach_func (gpointer data,
   GSource *source = data;
 
   g_source_attach (source, context);
+  g_source_unref (source);
 }
 
 static void
@@ -103,7 +104,10 @@ main (int argc, char **argv)
 
   start = g_get_monotonic_time ();
   for (i = 0; i < NSOURCES; i++)
-    g_source_destroy (sources[i]);
+    {
+      g_source_destroy (sources[i]);
+      g_source_unref (sources[i]);
+    }
   end = g_get_monotonic_time ();
   g_print ("Remove in random order: %" G_GINT64_FORMAT "\n",
            (end - start) / 1000);
@@ -136,7 +140,10 @@ main (int argc, char **argv)
 
   start = g_get_monotonic_time ();
   for (i = 0; i < NSOURCES; i++)
-    g_source_destroy (sources[i]);
+    {
+      g_source_destroy (sources[i]);
+      g_source_unref (sources[i]);
+    }
   end = g_get_monotonic_time ();
   g_print ("Remove in random order: %" G_GINT64_FORMAT "\n",
            (end - start) / 1000);
@@ -175,5 +182,6 @@ main (int argc, char **argv)
   /* Make sure they really did get removed */
   g_main_context_iteration (context, FALSE);
 
+  g_free (sources);
   return 0;
 }