Undo revision 1075
authorRobert Carr <racarr@src.gnome.org>
Thu, 29 Jan 2009 10:43:05 +0000 (10:43 +0000)
committerRobert Carr <racarr@src.gnome.org>
Thu, 29 Jan 2009 10:43:05 +0000 (10:43 +0000)
svn path=/trunk/; revision=1077

ChangeLog
girepository/girparser.c
tests/scanner/foo.h

index dde0bcb..e3a418c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,3 @@
-2009-01-28  Robert Carr   <carrr@rpi.edu>
-       
-       * girepository/girparser.c: post_filter_varargs_functions
-       should also filter callbacks.
-       * tests/scanner/foo.h: Add tests of varargs callbacks.
-
 2009-01-28  Johan Bilien  <jobi@via.ecp.fr>
 
        * tests/scanner/annotation-1.0-expected.gir: add missing
index 7679536..381c334 100644 (file)
@@ -2976,19 +2976,18 @@ cleanup (GMarkupParseContext *context,
 }
 
 static GList *
-post_filter_varargs_functions (GList *list, GList ** varargs_callbacks_out)
+post_filter_varargs_functions (GList *list)
 {
   GList *iter;
-  GList *varargs_callbacks = *varargs_callbacks_out;
-  
+
   iter = list;
   while (iter)
     {
       GList *link = iter;
       GIrNode *node = iter->data;
-      
+
       iter = iter->next;
-      
+
       if (node->type == G_IR_NODE_FUNCTION)
        {
          if (((GIrNodeFunction*)node)->is_varargs)
@@ -2996,60 +2995,7 @@ post_filter_varargs_functions (GList *list, GList ** varargs_callbacks_out)
              list = g_list_delete_link (list, link);
            }
        }
-      if (node->type == G_IR_NODE_CALLBACK)
-       {
-         if (((GIrNodeFunction*)node)->is_varargs)
-           {
-             varargs_callbacks = g_list_append(varargs_callbacks,
-                                               node);
-             list = g_list_delete_link (list, link);
-           }
-       }
     }
-  iter = list;
-  while (iter)
-    {
-      GList *link = iter;
-      GIrNode *node = iter->data;
-      
-      iter = iter->next;
-      
-      if (node->type == G_IR_NODE_FUNCTION)
-       {
-         GList *param;
-         gboolean function_done = FALSE;
-         
-         for (param = ((GIrNodeFunction *)node)->parameters;
-              param;
-              param = param->next)
-           {
-             GIrNodeParam *node = (GIrNodeParam *)param->data;
-             
-             if (function_done)
-               break;
-
-             if (node->type->is_interface)
-               {
-                 GList *callback;
-                 for (callback = varargs_callbacks;
-                      callback;
-                      callback = callback->next)
-                   {
-                     if (!strcmp(node->type->interface,
-                                 ((GIrNode *)varargs_callbacks->data)->name))
-                       {
-                         list = g_list_delete_link (list, link);
-                         function_done = TRUE;
-                         break;
-                       }
-                   }
-               }
-           }
-       }
-    }
-  
-  *varargs_callbacks_out = varargs_callbacks;
-  
   return list;
 }
 
@@ -3057,44 +3003,37 @@ static void
 post_filter (GIrModule *module)
 {
   GList *iter;
-  GList *varargs_callbacks = NULL;
-  
-  module->entries = post_filter_varargs_functions (module->entries,
-                                                  &varargs_callbacks);
+
+  module->entries = post_filter_varargs_functions (module->entries);
   iter = module->entries;
   while (iter)
     {
       GIrNode *node = iter->data;
-      
+
       iter = iter->next;
       
       if (node->type == G_IR_NODE_OBJECT || 
          node->type == G_IR_NODE_INTERFACE) 
        {
          GIrNodeInterface *iface = (GIrNodeInterface*)node;
-         iface->members = post_filter_varargs_functions (iface->members,
-                                                         &varargs_callbacks);
+         iface->members = post_filter_varargs_functions (iface->members);
        }
       else if (node->type == G_IR_NODE_BOXED)
        {
          GIrNodeBoxed *boxed = (GIrNodeBoxed*)node;
-         boxed->members = post_filter_varargs_functions (boxed->members,
-                                                         &varargs_callbacks);
+         boxed->members = post_filter_varargs_functions (boxed->members);
        }
       else if (node->type == G_IR_NODE_STRUCT)
        {
          GIrNodeStruct *iface = (GIrNodeStruct*)node;
-         iface->members = post_filter_varargs_functions (iface->members,
-                                                         &varargs_callbacks);
+         iface->members = post_filter_varargs_functions (iface->members);
        }
       else if (node->type == G_IR_NODE_UNION)
        {
          GIrNodeUnion *iface = (GIrNodeUnion*)node;
-         iface->members = post_filter_varargs_functions (iface->members,
-                                                         &varargs_callbacks);
+         iface->members = post_filter_varargs_functions (iface->members);
        }
     }
-  g_list_free(varargs_callbacks);
 }
 
 /**
index ee45cf6..b3614f3 100644 (file)
@@ -293,12 +293,6 @@ const FooStruct * foo_test_const_struct_retval (void);
 void foo_test_const_char_param (const char * param);
 void foo_test_const_struct_param (const FooStruct * param);
 
-typedef void (*FooVarargsCallback) (const char * param, ...);
-void foo_test_varargs_callback (gint i, FooVarargsCallback callback);
-void foo_test_varargs_callback2 (FooVarargsCallback callback);
-void foo_test_varargs_callback3 (FooVarargsCallback callback,
-                                FooVarargsCallback callback2);
-
 typedef enum {
   FOO_ERROR_GOOD,
   FOO_ERROR_BAD,