From: Robert Carr Date: Thu, 29 Jan 2009 10:43:05 +0000 (+0000) Subject: Undo revision 1075 X-Git-Tag: GOBJECT_INTROSPECTION_0_6_3~139 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f9a260e02e9921149d52622778ae7c489a5fa257;p=platform%2Fupstream%2Fgobject-introspection.git Undo revision 1075 svn path=/trunk/; revision=1077 --- diff --git a/ChangeLog b/ChangeLog index dde0bcb..e3a418c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,3 @@ -2009-01-28 Robert Carr - - * 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 * tests/scanner/annotation-1.0-expected.gir: add missing diff --git a/girepository/girparser.c b/girepository/girparser.c index 7679536..381c334 100644 --- a/girepository/girparser.c +++ b/girepository/girparser.c @@ -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); } /** diff --git a/tests/scanner/foo.h b/tests/scanner/foo.h index ee45cf6..b3614f3 100644 --- a/tests/scanner/foo.h +++ b/tests/scanner/foo.h @@ -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,