gobject-introspection r420 - in trunk: . girepository



Author: walters
Date: Wed Aug 20 19:01:20 2008
New Revision: 420
URL: http://svn.gnome.org/viewvc/gobject-introspection?rev=420&view=rev

Log:
2008-08-20  Colin Walters  <walters verbum org>

	* girepository/girparser.c: Avoid alias infloops.


Modified:
   trunk/ChangeLog
   trunk/girepository/girparser.c

Modified: trunk/girepository/girparser.c
==============================================================================
--- trunk/girepository/girparser.c	(original)
+++ trunk/girepository/girparser.c	Wed Aug 20 19:01:20 2008
@@ -435,11 +435,16 @@
 {
   gpointer orig;
   gpointer value;
+  GSList *seen_values = NULL;
 
+  seen_values = g_slist_prepend (seen_values, type);
   while (g_hash_table_lookup_extended (ctx->aliases, type, &orig, &value))
     {
       g_debug ("Resolved: %s => %s", type, value);
       type = value;
+      if (g_slist_find_custom (seen_values, type, strcmp) != NULL)
+	break;
+      seen_values = g_slist_prepend (seen_values, type);
     }
   return type;
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]