summaryrefslogtreecommitdiff
path: root/gobject-introspection
diff options
context:
space:
mode:
authorJuerg Billeter <j@bitron.ch>2007-11-23 21:37:01 +0000
committerJürg Billeter <juergbi@src.gnome.org>2007-11-23 21:37:01 +0000
commit550962a14c5ca404072e5e2b71eefe0715c2df2b (patch)
treed9a6a38d7df65ed51ed7d3ddbeed2316804fb6eb /gobject-introspection
parent98bdeb8615b920a89b159ff58c1e98359366615b (diff)
downloadvala-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.am1
-rw-r--r--gobject-introspection/gen-introspect.c18
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;