diff options
author | David Zeuthen <davidz@redhat.com> | 2011-06-01 18:19:13 -0400 |
---|---|---|
committer | David Zeuthen <davidz@redhat.com> | 2011-06-01 18:19:13 -0400 |
commit | beebca2f9a48e87dfbc989c1a34cfde1b664f589 (patch) | |
tree | b0400bc82fcb3c4ab5df00477000d2a1ce88b1bb | |
parent | 490757bfc60cad6079c121b8633c02151124794b (diff) |
Catch up with latest GDBus and gobject-introspection
Signed-off-by: David Zeuthen <davidz@redhat.com>
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | src/Makefile.am | 60 | ||||
-rw-r--r-- | src/gdbusgi.c | 59 | ||||
-rw-r--r-- | src/myfrobnicator.c | 16 | ||||
-rw-r--r-- | src/test.c | 5 |
5 files changed, 65 insertions, 79 deletions
diff --git a/configure.ac b/configure.ac index cddd86a..83c5cf4 100644 --- a/configure.ac +++ b/configure.ac @@ -84,11 +84,11 @@ if test "x$GCC" = "xyes"; then changequote([,])dnl fi -PKG_CHECK_MODULES(GLIB2, glib-2.0 gio-2.0) +PKG_CHECK_MODULES(GLIB2, glib-2.0 gio-2.0 >= 2.26.0) AC_SUBST(GLIB2_CFLAGS) AC_SUBST(GLIB2_LIBS) -PKG_CHECK_MODULES([INTROSPECTION], [gobject-introspection-1.0 >= 0.6.2]) +GOBJECT_INTROSPECTION_CHECK([0.10.0]) AC_OUTPUT([ Makefile diff --git a/src/Makefile.am b/src/Makefile.am index 0cc9721..13a0e64 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,5 +1,6 @@ NULL = +CLEANFILES = noinst_PROGRAMS = test @@ -16,49 +17,60 @@ test_CFLAGS = \ test_LDADD = \ $(GLIB2_LIBS) \ $(INTROSPECTION_LIBS) \ - libmy.la \ + libmy-1.0.la \ $(NULL) # ---------------------------------------------------------------------------------------------------- -noinst_LTLIBRARIES = libmy.la +noinst_LTLIBRARIES = libmy-1.0.la -libmy_la_SOURCES = \ +libmy_1_0_la_SOURCES = \ myfrobnicator.h myfrobnicator.c \ gdbusgi.h gdbusgi.c \ $(NULL) -libmy_la_CFLAGS = \ +libmy_1_0_la_CFLAGS = \ $(GLIB2_CFLAGS) \ $(INTROSPECTION_CFLAGS) \ $(NULL) -libmy_la_LIBADD = \ +libmy_1_0_la_LIBADD = \ $(GLIB2_LIBS) \ $(INTROSPECTION_LIBS) \ $(NULL) # ---------------------------------------------------------------------------------------------------- -My-1.0.gir: libmy.la Makefile.am - g-ir-scanner -v -v \ - --namespace My \ - --nsversion=1.0 \ - --include=Gio-2.0 \ - --library=libmy.la \ - --libtool ../libtool \ - --output $@ \ - --pkg=glib-2.0 \ - --pkg=gobject-2.0 \ - --pkg=gio-2.0 \ - -I$(top_builddir)/src \ - -I$(top_srcdir)/src \ - $(top_srcdir)/src/myfrobnicator.h \ - $(top_srcdir)/src/myfrobnicator.c \ - $(NULL) - -My-1.0.typelib: My-1.0.gir - g-ir-compiler $< -o $@ +if HAVE_INTROSPECTION +girdir = $(INTROSPECTION_GIRDIR) +gir_DATA = My-1.0.gir + +typelibsdir = $(INTROSPECTION_TYPELIBDIR) +typelibs_DATA = My-1.0.typelib + +My-1.0.gir: libmy-1.0.la $(INTROSPECTION_SCANNER) Makefile.am + $(INTROSPECTION_SCANNER) -v \ + --warn-all \ + --namespace My \ + --nsversion=1.0 \ + --include=Gio-2.0 \ + --library=libmy-1.0.la \ + --output $@ \ + --pkg=glib-2.0 \ + --pkg=gobject-2.0 \ + --pkg=gio-2.0 \ + --libtool=$(top_builddir)/libtool \ + -I$(top_srcdir)/src \ + -I$(top_builddir)/src \ + $(libmy_1_0_la_SOURCES) \ + $(NULL) + +My-1.0.typelib: My-1.0.gir $(INTROSPECTION_COMPILER) + $(INTROSPECTION_COMPILER) $< -o $@ + +CLEANFILES += $(gir_DATA) $(typelibs_DATA) + +endif # HAVE_INTROSPECTION # ---------------------------------------------------------------------------------------------------- diff --git a/src/gdbusgi.c b/src/gdbusgi.c index 387a4a3..7d82aa7 100644 --- a/src/gdbusgi.c +++ b/src/gdbusgi.c @@ -61,12 +61,10 @@ get_gvariant_type_for_gi_type (GITypeInfo *gi_type, gvariant_type = g_variant_type_new ("q"); break; - case GI_TYPE_TAG_INT: case GI_TYPE_TAG_INT32: gvariant_type = g_variant_type_new ("i"); break; - case GI_TYPE_TAG_UINT: case GI_TYPE_TAG_UINT32: gvariant_type = g_variant_type_new ("u"); break; @@ -142,8 +140,6 @@ get_gvariant_type_for_gi_type (GITypeInfo *gi_type, case GI_TYPE_TAG_UINT32: case GI_TYPE_TAG_INT64: case GI_TYPE_TAG_UINT64: - case GI_TYPE_TAG_INT: - case GI_TYPE_TAG_UINT: case GI_TYPE_TAG_DOUBLE: case GI_TYPE_TAG_UTF8: /* ^^^ Only these types are OK */ @@ -183,8 +179,6 @@ get_gvariant_type_for_gi_type (GITypeInfo *gi_type, case GI_TYPE_TAG_UINT32: case GI_TYPE_TAG_INT64: case GI_TYPE_TAG_UINT64: - case GI_TYPE_TAG_INT: - case GI_TYPE_TAG_UINT: case GI_TYPE_TAG_DOUBLE: /* ^^^ Only these types are OK */ break; @@ -326,14 +320,6 @@ get_scalar_element_size (GITypeInfo *type) ret = sizeof (guint64); break; - case GI_TYPE_TAG_INT: - ret = sizeof (gint); - break; - - case GI_TYPE_TAG_UINT: - ret = sizeof (guint); - break; - case GI_TYPE_TAG_DOUBLE: ret = sizeof (gdouble); break; @@ -389,14 +375,6 @@ argument_get_number (GArgument *arg, ret = arg->v_uint64; break; - case GI_TYPE_TAG_INT: - ret = arg->v_int; - break; - - case GI_TYPE_TAG_UINT: - ret = arg->v_uint; - break; - default: g_assert_not_reached (); break; @@ -465,13 +443,11 @@ convert_gi_to_gvariant (GArgument *value, ret = g_variant_new_uint16 (value->v_uint16); break; - case GI_TYPE_TAG_INT: case GI_TYPE_TAG_INT32: g_assert (g_variant_type_equal (expected_gvariant_type, G_VARIANT_TYPE_INT32)); ret = g_variant_new_int32 (value->v_int32); break; - case GI_TYPE_TAG_UINT: case GI_TYPE_TAG_UINT32: g_assert (g_variant_type_equal (expected_gvariant_type, G_VARIANT_TYPE_UINT32)); ret = g_variant_new_uint32 (value->v_uint32); @@ -733,14 +709,6 @@ argument_put_number (GArgument *arg, arg->v_uint64 = val; break; - case GI_TYPE_TAG_INT: - arg->v_int = val; - break; - - case GI_TYPE_TAG_UINT: - arg->v_uint = val; - break; - default: g_assert_not_reached (); break; @@ -807,13 +775,11 @@ convert_gvariant_to_gi (GVariant *variant, value->v_uint16 = g_variant_get_uint16 (variant); break; - case GI_TYPE_TAG_INT: case GI_TYPE_TAG_INT32: g_assert (g_variant_type_equal (gvariant_type, G_VARIANT_TYPE_INT32)); value->v_int32 = g_variant_get_int32 (variant); break; - case GI_TYPE_TAG_UINT: case GI_TYPE_TAG_UINT32: g_assert (g_variant_type_equal (gvariant_type, G_VARIANT_TYPE_UINT32)); value->v_uint32 = g_variant_get_uint32 (variant); @@ -1348,8 +1314,8 @@ prepare_args (GVariant *parameters, array_len_arg_type = NULL; if (ad->array_len_position != -1) { - array_len_arg = args[ad->array_len_position]; - array_len_arg_type = ((ArgData *) data->args->pdata[ad->array_len_position])->type_info; + array_len_arg = args[ad->array_len_position + 1]; + array_len_arg_type = ((ArgData *) data->args->pdata[ad->array_len_position + 1])->type_info; } convert_gvariant_to_gi (item, @@ -1411,8 +1377,8 @@ process_args (GArgument *return_value, array_len_arg_type = NULL; if (ad->array_len_position != -1) { - array_len_arg = args[ad->array_len_position]; - array_len_arg_type = ((ArgData *) data->args->pdata[ad->array_len_position])->type_info; + array_len_arg = args[ad->array_len_position + 1]; + array_len_arg_type = ((ArgData *) data->args->pdata[ad->array_len_position + 1])->type_info; } gvariant_type = g_variant_type_new (ad->dbus_arg_info->signature); @@ -1457,8 +1423,6 @@ free_one_arg (GArgument *arg, case GI_TYPE_TAG_UINT32: case GI_TYPE_TAG_INT64: case GI_TYPE_TAG_UINT64: - case GI_TYPE_TAG_INT: - case GI_TYPE_TAG_UINT: case GI_TYPE_TAG_DOUBLE: /* do nothing */ break; @@ -1514,7 +1478,8 @@ free_one_arg (GArgument *arg, else if ((array_length = g_type_info_get_array_length (type)) != -1) { guint64 array_len; - array_len = argument_get_number (all_args[array_length], all_args_data[array_length]->type_info); + array_len = argument_get_number (all_args[array_length + 1], + all_args_data[array_length + 1]->type_info); /* We only support scalar types and strings here */ if (g_type_info_get_tag (element_type) == GI_TYPE_TAG_UTF8) { @@ -1901,8 +1866,8 @@ process_signal_args (guint n_param_values, array_len_arg_type = NULL; if (ad->array_len_position != -1) { - array_len_arg = args[ad->array_len_position]; - array_len_arg_type = ((ArgData *) data->args->pdata[ad->array_len_position])->type_info; + array_len_arg = args[ad->array_len_position + 1]; + array_len_arg_type = ((ArgData *) data->args->pdata[ad->array_len_position + 1])->type_info; } gvariant_type = g_variant_type_new (ad->dbus_arg_info->signature); @@ -2155,7 +2120,7 @@ get_method_data (GIFunctionInfo *method, other_arg = g_callable_info_get_arg (callable, m); other_type = g_arg_info_get_type (other_arg); /* get_array_length() assumes first arg is this/self */ - if (g_type_info_get_array_length (other_type) == (gint) n + 1) + if (g_type_info_get_array_length (other_type) == (gint) n) { not_on_dbus = TRUE; ad->is_array_len_for_position = n; @@ -2533,6 +2498,12 @@ compute_interface_data_for_gtype (GType gtype, if (data->interface_info == NULL) goto fail; + //GString *str; + //str = g_string_new (NULL); + //g_dbus_interface_info_generate_xml (data->interface_info, 2, str); + //g_print ("xml:\n%s\n\n", str->str); + //g_string_free (str, TRUE); + return data; fail: diff --git a/src/myfrobnicator.c b/src/myfrobnicator.c index 2b901b0..14398b6 100644 --- a/src/myfrobnicator.c +++ b/src/myfrobnicator.c @@ -55,7 +55,7 @@ my_frobnicator_class_init (MyFrobnicatorClass *klass) * @frobnicator: A #MyFrobnicator. * @str: A string. * @carray_as: (array) (element-type utf8): - * @garray_ai: (array zero-terminated="0") (element-type gint): + * @garray_ai: (array zero-terminated=0) (element-type gint): * * Check that signal parameters are marshalled correctly onto the * bus. Btw, Hmm, apparently (array length=carray_ai_len) doesn't @@ -172,8 +172,8 @@ my_frobnicator_hello_world_with_gerror (MyFrobnicator *frobnicator, * @v_uint: Value. * @v_double: Value. * @v_string: Value. - * @v_object_path: (gdbus.signature o) (foo.bar baz): Value. - * @v_signature: (gdbus.signature g): Value. + * @v_object_path: (attribute gdbus.signature o) (attribute foo.bar baz): Value. + * @v_signature: (attribute gdbus.signature g): Value. * @out_boolean: (out): Return location for value. * @out_int16: (out): Return location for value. * @out_uint16: (out): Return location for value. @@ -185,8 +185,8 @@ my_frobnicator_hello_world_with_gerror (MyFrobnicator *frobnicator, * @out_uint: (out): Return location for value. * @out_double: (out): Return location for value. * @out_string: (out): Return location for value. - * @out_object_path: (out) (gdbus.signature o): Return location for value. - * @out_signature: (out) (gdbus.signature g): Return location for value. + * @out_object_path: (out) (attribute gdbus.signature o): Return location for value. + * @out_signature: (out) (attribute gdbus.signature g): Return location for value. * * Method demonstrating simple types. * @@ -292,11 +292,11 @@ my_frobnicator_return_const_str (MyFrobnicator *frobnicator, /** * my_frobnicator_poke_path: * @frobnicator: A #MyFrobnicator - * @object_path: (gdbus.signature o) (foo.bar bat): An object path. + * @object_path: (attribute gdbus.signature o) (attribute foo.bar bat): An object path. * * Manipulate an object path. * - * Returns: (gdbus.signature o): A new object path. Free with g_free(). + * Returns: (attribute gdbus.signature o): A new object path. Free with g_free(). * * Attributes: (gdbus.method PokePath) */ @@ -313,7 +313,7 @@ my_frobnicator_poke_path (MyFrobnicator *frobnicator, * @frobnicator: * @carray_ai: (array length=carray_ai_len): * @carray_ai_len: - * @carray_as: + * @carray_as: (array) (element-type utf8): * @gbytearray_ay: (element-type guint8): * @garray_ai: (element-type gint): * @garray_ad: (element-type gdouble): @@ -321,6 +321,7 @@ run_test (GDBusConnection *connection) "LaserFired", "/org/My/Frobnicator", NULL, /* arg0 */ + G_DBUS_SIGNAL_FLAGS_NONE, run_tests_on_signal_received, &signal_params, NULL); /* user_data_free_func */ @@ -413,7 +414,9 @@ load_typelib (void) &error); g_assert_no_error (error); - lib = g_typelib_new_from_mapped_file (mfile); + lib = g_typelib_new_from_mapped_file (mfile, &error); + g_assert_no_error (error); + g_irepository_load_typelib (g_irepository_get_default (), lib, 0, /* GIRepositoryLoadFlags */ |