Commit ece936e8 authored by Dan Winship's avatar Dan Winship

gmain: fix some silly code in a programmer-error case

Previously if a source got finalized while still attached to a
context, it would warn and re-ref the source. But then it just freed
it anyway... So keep the warning but drop the re-ref.

https://bugzilla.gnome.org/show_bug.cgi?id=634239
parent b3582028
......@@ -1511,13 +1511,12 @@ g_source_unref_internal (GSource *source,
source->callback_data = NULL;
source->callback_funcs = NULL;
if (context && !SOURCE_DESTROYED (source))
if (context)
{
g_warning (G_STRLOC ": ref_count == 0, but source is still attached to a context!");
source->ref_count++;
if (!SOURCE_DESTROYED (source))
g_warning (G_STRLOC ": ref_count == 0, but source was still attached to a context!");
g_source_list_remove (source, context);
}
else if (context)
g_source_list_remove (source, context);
if (source->source_funcs->finalize)
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment