Since g_source_attach adds a ref to a source and we keep the source stored
in a global variable and, therefore, do not unref it after attaching it, we
thus need to unref it when it is being destroyed and we clear the global
variable.
https://bugzilla.gnome.org/show_bug.cgi?id=709625
if (process_deferred_messages ())
return G_SOURCE_CONTINUE;
+ g_source_unref (process_deferred_messages_source);
process_deferred_messages_source = NULL;
return G_SOURCE_REMOVE;
}
if (process_deferred_messages_source != NULL)
{
g_source_destroy (process_deferred_messages_source);
+ g_source_unref (process_deferred_messages_source);
process_deferred_messages_source = g_idle_source_new ();
g_source_set_callback (process_deferred_messages_source,
process_deferred_messages_callback, NULL, NULL);