gmain: mark newest id used when source id overflows
authorNoah Massey <gnome@walterwelp.net>
Sun, 13 Oct 2013 14:25:39 +0000 (10:25 -0400)
committerColin Walters <walters@verbum.org>
Sun, 13 Oct 2013 14:25:39 +0000 (10:25 -0400)
When the source id reaches G_MAXUINT (just prior to overflow), we
record the existing source ids to prevent reassigning them.  As we are
about to assign G_MAXUINT to the triggering source, that id should be
added as well.

https://bugzilla.gnome.org/show_bug.cgi?id=710002

glib/gmain.c

index 99de6a8..a66739e 100644 (file)
@@ -1083,6 +1083,7 @@ assign_source_id_unlocked (GMainContext   *context,
                             GUINT_TO_POINTER (source->source_id));
         }
       id = G_MAXUINT;
+      g_hash_table_add (context->overflow_used_source_ids, GUINT_TO_POINTER (id));
     }
   else if (context->overflow_used_source_ids == NULL)
     {