diff options
author | Juerg Billeter <j@bitron.ch> | 2007-11-23 21:37:01 +0000 |
---|---|---|
committer | Jürg Billeter <juergbi@src.gnome.org> | 2007-11-23 21:37:01 +0000 |
commit | 550962a14c5ca404072e5e2b71eefe0715c2df2b (patch) | |
tree | d9a6a38d7df65ed51ed7d3ddbeed2316804fb6eb /gobject-introspection | |
parent | 98bdeb8615b920a89b159ff58c1e98359366615b (diff) | |
download | vala-550962a14c5ca404072e5e2b71eefe0715c2df2b.tar.gz |
call g_thread_init to support libraries using threading functionality in
2007-11-23 Juerg Billeter <j@bitron.ch>
* configure.ac, gobject-introspection/Makefile.am,
gobject-introspection/gen-introspect.c: call g_thread_init to support
libraries using threading functionality in class_init functions,
avoid NULL parameter names for signals and vfuncs
* vapi/packages/libsoup-2.2/: update to use vala-gen-introspect
* vapi/packages/hildon-1/hildon-1.gi,
vapi/packages/libgnomeui-2.0/libgnomeui-2.0.gi, vapi/hildon-1.vapi,
vapi/libgnomeui-2.0.vapi, vapi/libsoup-2.2.vapi: regenerated
svn path=/trunk/; revision=713
Diffstat (limited to 'gobject-introspection')
-rw-r--r-- | gobject-introspection/Makefile.am | 1 | ||||
-rw-r--r-- | gobject-introspection/gen-introspect.c | 18 |
2 files changed, 15 insertions, 4 deletions
diff --git a/gobject-introspection/Makefile.am b/gobject-introspection/Makefile.am index 2b982289d..4b97a25f8 100644 --- a/gobject-introspection/Makefile.am +++ b/gobject-introspection/Makefile.am @@ -38,6 +38,7 @@ gen_introspect_SOURCES = \ gen_introspect_LDADD = \ $(GLIB_LIBS) \ $(GMODULE_LIBS) \ + $(GTHREAD_LIBS) \ libgidl.la \ $(NULL) diff --git a/gobject-introspection/gen-introspect.c b/gobject-introspection/gen-introspect.c index 22b12a23c..865de37a0 100644 --- a/gobject-introspection/gen-introspect.c +++ b/gobject-introspection/gen-introspect.c @@ -819,8 +819,10 @@ static void g_igenerator_process_struct_typedef (GIGenerator *igenerator, CSymbo for (vfunc_param_l = member->base_type->base_type->child_list, sig_param_l = sig->parameters; vfunc_param_l != NULL && sig_param_l != NULL; vfunc_param_l = vfunc_param_l->next, sig_param_l = sig_param_l->next) { CSymbol *vfunc_param = vfunc_param_l->data; GIdlNodeParam *sig_param = sig_param_l->data; - g_free (sig_param->node.name); - sig_param->node.name = g_strdup (vfunc_param->ident); + if (vfunc_param->ident != NULL) { + g_free (sig_param->node.name); + sig_param->node.name = g_strdup (vfunc_param->ident); + } } break; } @@ -835,10 +837,15 @@ static void g_igenerator_process_struct_typedef (GIGenerator *igenerator, CSymbo givfunc->result = (GIdlNodeParam *) g_idl_node_new (G_IDL_NODE_PARAM); givfunc->result->type = get_type_from_ctype (member->base_type->base_type->base_type); GList *param_l; - for (param_l = member->base_type->base_type->child_list; param_l != NULL; param_l = param_l->next) { + int i; + for (param_l = member->base_type->base_type->child_list, i = 1; param_l != NULL; param_l = param_l->next, i++) { CSymbol *param_sym = param_l->data; GIdlNodeParam *param = (GIdlNodeParam *) g_idl_node_new (G_IDL_NODE_PARAM); - param->node.name = param_sym->ident; + if (param_sym->ident == NULL) { + param->node.name = g_strdup_printf ("p%d", i); + } else { + param->node.name = param_sym->ident; + } param->type = get_type_from_ctype (param_sym->base_type); givfunc->parameters = g_list_append (givfunc->parameters, param); } @@ -1070,6 +1077,9 @@ int main (int argc, char **argv) { g_type_init (); + /* initialize threading as this may be required by libraries that we'll use */ + g_thread_init (NULL); + GIGenerator *igenerator = g_igenerator_new (); int cpp_argc = 0; |