diff -Nru gobject-introspection-1.31.20/configure gobject-introspection-1.31.22/configure --- gobject-introspection-1.31.20/configure 2012-03-05 14:47:02.000000000 +0000 +++ gobject-introspection-1.31.22/configure 2012-03-21 14:01:09.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for gobject-introspection 1.31.20. +# Generated by GNU Autoconf 2.68 for gobject-introspection 1.31.22. # # Report bugs to . # @@ -571,8 +571,8 @@ # Identity of this package. PACKAGE_NAME='gobject-introspection' PACKAGE_TARNAME='gobject-introspection' -PACKAGE_VERSION='1.31.20' -PACKAGE_STRING='gobject-introspection 1.31.20' +PACKAGE_VERSION='1.31.22' +PACKAGE_STRING='gobject-introspection 1.31.22' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=glib&component=introspection' PACKAGE_URL='' @@ -1410,7 +1410,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures gobject-introspection 1.31.20 to adapt to many kinds of systems. +\`configure' configures gobject-introspection 1.31.22 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1481,7 +1481,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of gobject-introspection 1.31.20:";; + short | recursive ) echo "Configuration of gobject-introspection 1.31.22:";; esac cat <<\_ACEOF @@ -1634,7 +1634,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -gobject-introspection configure 1.31.20 +gobject-introspection configure 1.31.22 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -2181,7 +2181,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by gobject-introspection $as_me 1.31.20, which was +It was created by gobject-introspection $as_me 1.31.22, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -3001,7 +3001,7 @@ # Define the identity of the package. PACKAGE='gobject-introspection' - VERSION='1.31.20' + VERSION='1.31.22' cat >>confdefs.h <<_ACEOF @@ -15248,7 +15248,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by gobject-introspection $as_me 1.31.20, which was +This file was extended by gobject-introspection $as_me 1.31.22, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15314,7 +15314,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -gobject-introspection config.status 1.31.20 +gobject-introspection config.status 1.31.22 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" diff -Nru gobject-introspection-1.31.20/configure.ac gobject-introspection-1.31.22/configure.ac --- gobject-introspection-1.31.20/configure.ac 2012-03-05 14:45:09.000000000 +0000 +++ gobject-introspection-1.31.22/configure.ac 2012-03-21 13:58:41.000000000 +0000 @@ -4,7 +4,7 @@ dnl the gi version number m4_define(gi_major_version, 1) m4_define(gi_minor_version, 31) -m4_define(gi_micro_version, 20) +m4_define(gi_micro_version, 22) m4_define(gi_version, gi_major_version.gi_minor_version.gi_micro_version) AC_PREREQ([2.63]) @@ -272,6 +272,8 @@ AM_CHECK_PYTHON_LIBS(, AC_MSG_ERROR([Python libs not found. Windows requires Python modules to be explicitly linked to libpython.])) fi +dnl Not enabled by default until 3.6 cycle when we can propose mako as +dnl an external dependency AC_ARG_ENABLE(doctool,[ --enable-doctool enable g-ir-doctool ], enable_doctool=$enableval,enable_doctool=no) if test x$enable_doctool != xno; then AM_CHECK_PYMOD(mako,,,[AC_MSG_ERROR(Could not find python module: mako)]) diff -Nru gobject-introspection-1.31.20/debian/changelog gobject-introspection-1.31.22/debian/changelog --- gobject-introspection-1.31.20/debian/changelog 2012-03-05 18:56:23.000000000 +0000 +++ gobject-introspection-1.31.22/debian/changelog 2012-03-21 15:25:22.000000000 +0000 @@ -1,3 +1,10 @@ +gobject-introspection (1.31.22-1) unstable; urgency=low + + * New upstream bug fix release. + * debian/libgirepository-1.0-1.symbols: Add new symbol from this release. + + -- Martin Pitt Wed, 21 Mar 2012 16:25:22 +0100 + gobject-introspection (1.31.20-1) unstable; urgency=low * New upstream release: diff -Nru gobject-introspection-1.31.20/debian/control gobject-introspection-1.31.22/debian/control --- gobject-introspection-1.31.20/debian/control 2012-03-05 18:56:43.000000000 +0000 +++ gobject-introspection-1.31.22/debian/control 2012-03-21 15:25:54.000000000 +0000 @@ -7,7 +7,7 @@ Section: devel Priority: optional Maintainer: Debian GNOME Maintainers -Uploaders: Josselin Mouette , Laurent Bigonville , Michael Biebl , Sjoerd Simons +Uploaders: Laurent Bigonville , Michael Biebl , Sjoerd Simons Build-Depends: debhelper (>= 8), cdbs (>= 0.4.90~), gnome-pkg-tools (>= 0.10), diff -Nru gobject-introspection-1.31.20/debian/libgirepository-1.0-1.symbols gobject-introspection-1.31.22/debian/libgirepository-1.0-1.symbols --- gobject-introspection-1.31.20/debian/libgirepository-1.0-1.symbols 2012-03-05 18:20:50.000000000 +0000 +++ gobject-introspection-1.31.22/debian/libgirepository-1.0-1.symbols 2012-03-21 15:00:19.000000000 +0000 @@ -192,4 +192,5 @@ g_vfunc_info_get_signal@Base 0.9.2 g_vfunc_info_invoke@Base 0.10.2 gi_cclosure_marshal_generic@Base 0.9.2 + gi_type_info_extract_ffi_return_value@Base 1.31.22 gi_type_tag_get_ffi_type@Base 0.10.0 diff -Nru gobject-introspection-1.31.20/docs/reference/html/gi-GIBaseInfo.html gobject-introspection-1.31.22/docs/reference/html/gi-GIBaseInfo.html --- gobject-introspection-1.31.20/docs/reference/html/gi-GIBaseInfo.html 2012-03-05 14:48:09.000000000 +0000 +++ gobject-introspection-1.31.22/docs/reference/html/gi-GIBaseInfo.html 2012-03-21 14:01:49.000000000 +0000 @@ -67,7 +67,7 @@ All other structs can be casted to a GIBaseInfo, for instance:

-

Example 1. Casting a GIFunctionInfo to GIBaseInfo

+

Example 1. Casting a GIFunctionInfo to GIBaseInfo

@@ -91,7 +91,7 @@

-

Example 2. Getting the Button of the Gtk typelib

+

Example 2. Getting the Button of the Gtk typelib

@@ -480,7 +480,7 @@

-

Example 3. Iterating over attributes

+

Example 3. Iterating over attributes

diff -Nru gobject-introspection-1.31.20/docs/reference/html/gi-gir-reference.html gobject-introspection-1.31.22/docs/reference/html/gi-gir-reference.html --- gobject-introspection-1.31.20/docs/reference/html/gi-gir-reference.html 2012-03-05 14:48:09.000000000 +0000 +++ gobject-introspection-1.31.22/docs/reference/html/gi-gir-reference.html 2012-03-21 14:01:49.000000000 +0000 @@ -34,7 +34,7 @@ Possible children: namespace.
-

Example 4. A GIR fragment showing an api node

+

Example 4. A GIR fragment showing an api node

@@ -65,7 +65,7 @@ interface.
-

Example 5. A GIR fragment showing an namespace node

+

Example 5. A GIR fragment showing an namespace node

@@ -101,7 +101,7 @@ method, property.
-

Example 6. A GIR fragment showing an class node

+

Example 6. A GIR fragment showing an class node

@@ -144,7 +144,7 @@ method, property.
-

Example 7. A GIR fragment showing an interface node

+

Example 7. A GIR fragment showing an interface node

@@ -182,7 +182,7 @@ Parent node: namespace.
-

Example 8. A GIR fragment showing an function node

+

Example 8. A GIR fragment showing an function node

diff -Nru gobject-introspection-1.31.20/docs/reference/Makefile.in gobject-introspection-1.31.22/docs/reference/Makefile.in --- gobject-introspection-1.31.20/docs/reference/Makefile.in 2012-03-05 14:47:03.000000000 +0000 +++ gobject-introspection-1.31.22/docs/reference/Makefile.in 2012-03-21 14:01:10.000000000 +0000 @@ -655,7 +655,7 @@ rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ fi -maintainer-clean-local: clean +maintainer-clean-local: @rm -rf xml html install-data-local: diff -Nru gobject-introspection-1.31.20/gir/gio-2.0.c gobject-introspection-1.31.22/gir/gio-2.0.c --- gobject-introspection-1.31.20/gir/gio-2.0.c 2012-03-05 14:44:06.000000000 +0000 +++ gobject-introspection-1.31.22/gir/gio-2.0.c 2012-03-21 13:52:59.000000000 +0000 @@ -20329,6 +20329,9 @@ * See g_dbus_connection_call_sync() for the synchronous version of this * function. * + * If @callback is %NULL then the D-Bus method call message will be sent with + * the %G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED flag set. + * * Since: 2.26 */ @@ -23613,6 +23616,9 @@ * the operation. See g_dbus_proxy_call_sync() for the synchronous * version of this method. * + * If @callback is %NULL then the D-Bus method call message will be sent with + * the %G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED flag set. + * * Since: 2.26 */ @@ -35659,6 +35665,15 @@ * * Creates a #GSimpleAsyncResult. * + * The common convention is to create the #GSimpleAsyncResult in the + * function that starts the asynchronous operation and use that same + * function as the @source_tag. + * + * If your operation supports cancellation with #GCancellable (which it + * probably should) then you should provide the user's cancellable to + * g_simple_async_result_set_check_cancellable() immediately after + * this function returns. + * * Returns: a #GSimpleAsyncResult. */ @@ -35715,6 +35730,10 @@ * Propagates an error from within the simple asynchronous result to * a given destination. * + * If the #GCancellable given to a prior call to + * g_simple_async_result_set_check_cancellable() is cancelled then this + * function will return %TRUE with @dest set appropriately. + * * Returns: %TRUE if the error was propagated to @dest. %FALSE otherwise. */ @@ -35736,6 +35755,31 @@ /** + * g_simple_async_result_set_check_cancellable: + * @simple: a #GSimpleAsyncResult + * @check_cancellable: a #GCancellable to check, or %NULL to unset + * + * Sets a #GCancellable to check before dispatching results. + * + * This function has one very specific purpose: the provided cancellable + * is checked at the time of g_simple_async_result_propagate_error() If + * it is cancelled, these functions will return an "Operation was + * cancelled" error (%G_IO_ERROR_CANCELLED). + * + * Implementors of cancellable asynchronous functions should use this in + * order to provide a guarantee to their callers that cancelling an + * async operation will reliably result in an error being returned for + * that operation (even if a positive result for the operation has + * already been sent as an idle to the main context to be dispatched). + * + * The checking described above is done regardless of any call to the + * unrelated g_simple_async_result_set_handle_cancellation() function. + * + * Since: 2.32 + */ + + +/** * g_simple_async_result_set_error: (skip) * @simple: a #GSimpleAsyncResult. * @domain: a #GQuark (usually #G_IO_ERROR). @@ -35775,6 +35819,10 @@ * @handle_cancellation: a #gboolean. * * Sets whether to handle cancellation within the asynchronous operation. + * + * This function has nothing to do with + * g_simple_async_result_set_check_cancellable(). It only refers to the + * #GCancellable passed to g_simple_async_result_run_in_thread(). */ diff -Nru gobject-introspection-1.31.20/gir/glib-2.0.c gobject-introspection-1.31.22/gir/glib-2.0.c --- gobject-introspection-1.31.20/gir/glib-2.0.c 2012-03-05 14:44:03.000000000 +0000 +++ gobject-introspection-1.31.22/gir/glib-2.0.c 2012-03-21 13:52:59.000000000 +0000 @@ -13467,11 +13467,7 @@ * than second arg, zero for equal, greater zero if first arg is * greater than second arg). * - * If two array elements compare equal, their order in the sorted array - * is undefined. If you want equal elements to keep their order (i.e. - * you want a stable sort) you can write a comparison function that, - * if two elements would otherwise compare equal, compares them by - * their addresses. + * This is guaranteed to be a stable sort since version 2.32. */ @@ -13483,6 +13479,12 @@ * * Like g_array_sort(), but the comparison function receives an extra * user data argument. + * + * This is guaranteed to be a stable sort since version 2.32. + * + * There used to be a comment here about making the sort stable by + * using the addresses of the elements in the comparison function. + * This did not actually work, so any such code should be removed. */ @@ -27170,15 +27172,11 @@ * than second arg, zero for equal, greater than zero if irst arg is * greater than second arg). * - * If two array elements compare equal, their order in the sorted array - * is undefined. If you want equal elements to keep their order (i.e. - * you want a stable sort) you can write a comparison function that, - * if two elements would otherwise compare equal, compares them by - * their addresses. - * * The comparison function for g_ptr_array_sort() doesn't * take the pointers from the array as arguments, it takes pointers to * the pointers in the array. + * + * This is guaranteed to be a stable sort since version 2.32. */ @@ -27194,6 +27192,8 @@ * The comparison function for g_ptr_array_sort_with_data() * doesn't take the pointers from the array as arguments, it takes * pointers to the pointers in the array. + * + * This is guaranteed to be a stable sort since version 2.32. */ @@ -27220,6 +27220,8 @@ * * This is just like the standard C qsort() function, but * the comparison routine accepts a user data argument. + * + * This is guaranteed to be a stable sort since version 2.32. */ diff -Nru gobject-introspection-1.31.20/gir/gobject-2.0.c gobject-introspection-1.31.22/gir/gobject-2.0.c --- gobject-introspection-1.31.20/gir/gobject-2.0.c 2012-03-05 14:44:04.000000000 +0000 +++ gobject-introspection-1.31.22/gir/gobject-2.0.c 2012-03-21 13:52:59.000000000 +0000 @@ -10383,6 +10383,8 @@ * (such as the various fundamental type implementations or the signal * system). * + * This function is idempotent. + * * Since version 2.24 this also initializes the thread system */ @@ -10392,6 +10394,8 @@ * @debug_flags: Bitwise combination of #GTypeDebugFlags values for debugging purposes. * * Similar to g_type_init(), but additionally sets debug flags. + * + * This function is idempotent. */ diff -Nru gobject-introspection-1.31.20/girepository/gicallableinfo.c gobject-introspection-1.31.22/girepository/gicallableinfo.c --- gobject-introspection-1.31.20/girepository/gicallableinfo.c 2012-02-17 16:47:04.000000000 +0000 +++ gobject-introspection-1.31.22/girepository/gicallableinfo.c 2012-03-05 14:56:55.000000000 +0000 @@ -360,6 +360,77 @@ return TRUE; } +/* Extract the correct bits from an ffi_arg return value into + * GIArgument: https://bugzilla.gnome.org/show_bug.cgi?id=665152 + * + * Also see the ffi_call man page - the storage requirements for return + * values are "special". + */ +void +gi_type_info_extract_ffi_return_value (GITypeInfo *return_info, + GIFFIReturnValue *ffi_value, + GIArgument *arg) +{ + switch (g_type_info_get_tag (return_info)) { + case GI_TYPE_TAG_INT8: + arg->v_int8 = (gint8) ffi_value->v_long; + break; + case GI_TYPE_TAG_UINT8: + arg->v_uint8 = (guint8) ffi_value->v_ulong; + break; + case GI_TYPE_TAG_INT16: + arg->v_int16 = (gint16) ffi_value->v_long; + break; + case GI_TYPE_TAG_UINT16: + arg->v_uint16 = (guint16) ffi_value->v_ulong; + break; + case GI_TYPE_TAG_INT32: + arg->v_int32 = (gint32) ffi_value->v_long; + break; + case GI_TYPE_TAG_UINT32: + case GI_TYPE_TAG_BOOLEAN: + case GI_TYPE_TAG_UNICHAR: + arg->v_uint32 = (guint32) ffi_value->v_ulong; + break; + case GI_TYPE_TAG_INT64: + arg->v_int64 = (gint64) ffi_value->v_int64; + break; + case GI_TYPE_TAG_UINT64: + arg->v_uint64 = (guint64) ffi_value->v_uint64; + break; + case GI_TYPE_TAG_FLOAT: + arg->v_float = ffi_value->v_float; + break; + case GI_TYPE_TAG_DOUBLE: + arg->v_double = ffi_value->v_double; + break; + case GI_TYPE_TAG_INTERFACE: + { + GIBaseInfo* interface_info; + GIInfoType interface_type; + + interface_info = g_type_info_get_interface(return_info); + interface_type = g_base_info_get_type(interface_info); + + switch(interface_type) { + case GI_INFO_TYPE_ENUM: + case GI_INFO_TYPE_FLAGS: + arg->v_int32 = (gint32) ffi_value->v_long; + break; + default: + arg->v_pointer = (gpointer) ffi_value->v_ulong; + break; + } + + g_base_info_unref(interface_info); + } + break; + default: + arg->v_pointer = (gpointer) ffi_value->v_ulong; + break; + } +} + gboolean _g_callable_info_invoke (GIFunctionInfo *info, gpointer function, @@ -376,16 +447,20 @@ ffi_type *rtype; ffi_type **atypes; GITypeInfo *tinfo; + GITypeInfo *rinfo; + GITypeTag rtag; GIArgInfo *ainfo; gint n_args, n_invoke_args, in_pos, out_pos, i; gpointer *args; gboolean success = FALSE; GError *local_error = NULL; gpointer error_address = &local_error; + GIFFIReturnValue ffi_return_value; + gpointer return_value_p; /* Will point inside the union return_value */ - tinfo = g_callable_info_get_return_type ((GICallableInfo *)info); - rtype = g_type_info_get_ffi_type (tinfo); - g_base_info_unref ((GIBaseInfo *)tinfo); + rinfo = g_callable_info_get_return_type ((GICallableInfo *)info); + rtype = g_type_info_get_ffi_type (rinfo); + rtag = g_type_info_get_tag(rinfo); in_pos = 0; out_pos = 0; @@ -516,7 +591,23 @@ goto out; g_return_val_if_fail (return_value, FALSE); - ffi_call (&cif, function, return_value, args); + /* See comment for GIFFIReturnValue above */ + switch (rtag) + { + case GI_TYPE_TAG_FLOAT: + return_value_p = &ffi_return_value.v_float; + break; + case GI_TYPE_TAG_DOUBLE: + return_value_p = &ffi_return_value.v_double; + break; + case GI_TYPE_TAG_INT64: + case GI_TYPE_TAG_UINT64: + return_value_p = &ffi_return_value.v_uint64; + break; + default: + return_value_p = &ffi_return_value.v_long; + } + ffi_call (&cif, function, return_value_p, args); if (local_error) { @@ -525,8 +616,10 @@ } else { + gi_type_info_extract_ffi_return_value (rinfo, &ffi_return_value, return_value); success = TRUE; } out: + g_base_info_unref ((GIBaseInfo *)rinfo); return success; } diff -Nru gobject-introspection-1.31.20/girepository/ginvoke.c gobject-introspection-1.31.22/girepository/ginvoke.c --- gobject-introspection-1.31.20/girepository/ginvoke.c 2012-02-17 16:47:04.000000000 +0000 +++ gobject-introspection-1.31.22/girepository/ginvoke.c 2012-03-08 14:32:34.000000000 +0000 @@ -88,57 +88,121 @@ return rettype; } +/* See comment aboe set_gargument_from_ffi_return_value() */ +static ffi_type * +g_value_to_ffi_return_type (const GValue *gvalue, + const GIArgument *ffi_value, + gpointer *value) +{ + ffi_type *rettype = NULL; + GType type = g_type_fundamental (G_VALUE_TYPE (gvalue)); + g_assert (type != G_TYPE_INVALID); + + *value = (gpointer)&(ffi_value->v_long); + + switch (type) { + case G_TYPE_CHAR: + rettype = &ffi_type_sint8; + break; + case G_TYPE_UCHAR: + rettype = &ffi_type_uint8; + break; + case G_TYPE_BOOLEAN: + case G_TYPE_INT: + rettype = &ffi_type_sint; + break; + case G_TYPE_UINT: + rettype = &ffi_type_uint; + break; + case G_TYPE_STRING: + case G_TYPE_OBJECT: + case G_TYPE_BOXED: + case G_TYPE_POINTER: + rettype = &ffi_type_pointer; + break; + case G_TYPE_FLOAT: + rettype = &ffi_type_float; + *value = (gpointer)&(ffi_value->v_float); + break; + case G_TYPE_DOUBLE: + rettype = &ffi_type_double; + *value = (gpointer)&(ffi_value->v_double); + break; + case G_TYPE_LONG: + rettype = &ffi_type_slong; + break; + case G_TYPE_ULONG: + rettype = &ffi_type_ulong; + break; + case G_TYPE_INT64: + rettype = &ffi_type_sint64; + *value = (gpointer)&(ffi_value->v_int64); + break; + case G_TYPE_UINT64: + rettype = &ffi_type_uint64; + *value = (gpointer)&(ffi_value->v_uint64); + break; + default: + rettype = &ffi_type_pointer; + *value = NULL; + g_warning ("Unsupported fundamental type: %s", g_type_name (type)); + break; + } + return rettype; +} + static void -value_from_ffi_type (GValue *gvalue, gpointer *value) +g_value_from_ffi_value (GValue *gvalue, + const GIArgument *value) { - switch (g_type_fundamental (G_VALUE_TYPE (gvalue))) - { - case G_TYPE_INT: - g_value_set_int (gvalue, *(gint*)value); + switch (g_type_fundamental (G_VALUE_TYPE (gvalue))) { + case G_TYPE_INT: + g_value_set_int (gvalue, (gint)value->v_long); break; - case G_TYPE_FLOAT: - g_value_set_float (gvalue, *(gfloat*)value); + case G_TYPE_FLOAT: + g_value_set_float (gvalue, (gfloat)value->v_float); break; - case G_TYPE_DOUBLE: - g_value_set_double (gvalue, *(gdouble*)value); + case G_TYPE_DOUBLE: + g_value_set_double (gvalue, (gdouble)value->v_double); break; - case G_TYPE_BOOLEAN: - g_value_set_boolean (gvalue, *(gboolean*)value); + case G_TYPE_BOOLEAN: + g_value_set_boolean (gvalue, (gboolean)value->v_long); break; - case G_TYPE_STRING: - g_value_set_string (gvalue, *(gchar**)value); + case G_TYPE_STRING: + g_value_set_string (gvalue, (gchar*)value->v_pointer); break; - case G_TYPE_CHAR: - g_value_set_char (gvalue, *(gchar*)value); + case G_TYPE_CHAR: + g_value_set_char (gvalue, (gchar)value->v_long); break; - case G_TYPE_UCHAR: - g_value_set_uchar (gvalue, *(guchar*)value); + case G_TYPE_UCHAR: + g_value_set_uchar (gvalue, (guchar)value->v_ulong); break; - case G_TYPE_UINT: - g_value_set_uint (gvalue, *(guint*)value); + case G_TYPE_UINT: + g_value_set_uint (gvalue, (guint)value->v_ulong); break; - case G_TYPE_POINTER: - g_value_set_pointer (gvalue, *(gpointer*)value); + case G_TYPE_POINTER: + g_value_set_pointer (gvalue, (gpointer)value->v_pointer); break; - case G_TYPE_LONG: - g_value_set_long (gvalue, *(glong*)value); + case G_TYPE_LONG: + g_value_set_long (gvalue, (glong)value->v_long); break; - case G_TYPE_ULONG: - g_value_set_ulong (gvalue, *(gulong*)value); + case G_TYPE_ULONG: + g_value_set_ulong (gvalue, (gulong)value->v_ulong); break; - case G_TYPE_INT64: - g_value_set_int64 (gvalue, *(gint64*)value); + case G_TYPE_INT64: + g_value_set_int64 (gvalue, (gint64)value->v_int64); break; - case G_TYPE_UINT64: - g_value_set_uint64 (gvalue, *(guint64*)value); + case G_TYPE_UINT64: + g_value_set_uint64 (gvalue, (guint64)value->v_uint64); break; - case G_TYPE_BOXED: - g_value_set_boxed (gvalue, *(gpointer*)value); + case G_TYPE_BOXED: + g_value_set_boxed (gvalue, (gpointer)value->v_pointer); break; - default: - g_warning ("Unsupported fundamental type: %s", - g_type_name (g_type_fundamental (G_VALUE_TYPE (gvalue)))); - } + default: + g_warning ("Unsupported fundamental type: %s", + g_type_name (g_type_fundamental (G_VALUE_TYPE (gvalue)))); + } + } void @@ -149,6 +213,7 @@ gpointer invocation_hint, gpointer marshal_data) { + GIArgument return_ffi_value; ffi_type *rtype; void *rvalue; int n_args; @@ -160,15 +225,15 @@ if (return_gvalue && G_VALUE_TYPE (return_gvalue)) { - rtype = value_to_ffi_type (return_gvalue, &rvalue); + rtype = g_value_to_ffi_return_type (return_gvalue, &return_ffi_value, + &rvalue); } else { rtype = &ffi_type_void; + rvalue = &return_ffi_value.v_long; } - rvalue = g_alloca (MAX (rtype->size, sizeof (ffi_arg))); - n_args = n_param_values + 1; atypes = g_alloca (sizeof (ffi_type *) * n_args); args = g_alloca (sizeof (gpointer) * n_args); @@ -204,5 +269,5 @@ ffi_call (&cif, marshal_data ? marshal_data : cc->callback, rvalue, args); if (return_gvalue && G_VALUE_TYPE (return_gvalue)) - value_from_ffi_type (return_gvalue, rvalue); + g_value_from_ffi_value (return_gvalue, &return_ffi_value); } diff -Nru gobject-introspection-1.31.20/girepository/girffi.h gobject-introspection-1.31.22/girepository/girffi.h --- gobject-introspection-1.31.20/girepository/girffi.h 2012-02-17 16:47:04.000000000 +0000 +++ gobject-introspection-1.31.22/girepository/girffi.h 2012-03-05 14:56:55.000000000 +0000 @@ -46,10 +46,16 @@ gpointer padding[3]; }; +typedef GIArgument GIFFIReturnValue; + ffi_type * gi_type_tag_get_ffi_type (GITypeTag type_tag, gboolean is_pointer); ffi_type * g_type_info_get_ffi_type (GITypeInfo *info); +void gi_type_info_extract_ffi_return_value (GITypeInfo *return_info, + GIFFIReturnValue *ffi_value, + GIArgument *arg); + gboolean g_function_info_prep_invoker (GIFunctionInfo *info, GIFunctionInvoker *invoker, GError **error); diff -Nru gobject-introspection-1.31.20/giscanner/ast.py gobject-introspection-1.31.22/giscanner/ast.py --- gobject-introspection-1.31.20/giscanner/ast.py 2012-02-20 17:19:27.000000000 +0000 +++ gobject-introspection-1.31.22/giscanner/ast.py 2012-03-15 15:22:02.000000000 +0000 @@ -21,6 +21,8 @@ import copy +from . import message + from .message import Position from .odict import odict from .utils import to_underscores @@ -589,6 +591,25 @@ clone.parameters = self.parameters[:] return clone + def is_type_meta_function(self): + # Named correctly + if not (self.name.endswith('_get_type') or + self.name.endswith('_get_gtype')): + return False + + # Doesn't have any parameters + if self.parameters: + return False + + # Returns GType + rettype = self.retval.type + if (not rettype.is_equiv(TYPE_GTYPE) and + rettype.target_giname != 'Gtk.Type'): + message.warn("function '%s' returns '%r', not a GType" % + (self.name, rettype)) + return False + + return True class ErrorQuarkFunction(Function): @@ -656,11 +677,7 @@ self.element_type = element_type def clone(self): - l = List(self.name, self.element_type) - l.zeroterminated = self.zeroterminated - l.length_param_name = self.length_param_name - l.size = self.size - return l + return List(self.name, self.element_type) class Map(Type): diff -Nru gobject-introspection-1.31.20/giscanner/gdumpparser.py gobject-introspection-1.31.22/giscanner/gdumpparser.py --- gobject-introspection-1.31.20/giscanner/gdumpparser.py 2011-09-12 18:29:51.000000000 +0000 +++ gobject-introspection-1.31.22/giscanner/gdumpparser.py 2012-03-08 14:16:01.000000000 +0000 @@ -188,18 +188,12 @@ if func.symbol == 'g_variant_get_gtype': # We handle variants internally, see _initparse_gobject_record return True - if func.parameters: - return False - # GType *_get_type(void) - rettype = func.retval.type - if not (rettype.is_equiv(ast.TYPE_GTYPE) - or rettype.target_giname == 'Gtk.Type'): - message.warn("function returns '%r', not a GType" % ( - func.retval.type, )) - return False - self._get_type_functions.append(func.symbol) - return True + if func.is_type_meta_function(): + self._get_type_functions.append(func.symbol) + return True + + return False def _initparse_error_quark_function(self, func): if (func.retval.type.ctype != 'GQuark'): diff -Nru gobject-introspection-1.31.20/giscanner/maintransformer.py gobject-introspection-1.31.22/giscanner/maintransformer.py --- gobject-introspection-1.31.20/giscanner/maintransformer.py 2012-02-16 16:24:41.000000000 +0000 +++ gobject-introspection-1.31.22/giscanner/maintransformer.py 2012-03-08 14:16:01.000000000 +0000 @@ -955,10 +955,11 @@ def _pair_function(self, func): """Check to see whether a toplevel function should be a method or constructor of some type.""" - if (func.symbol.endswith('_get_type') - or func.symbol.endswith('_get_gtype') - or func.symbol.startswith('_')): + + # Ignore internal symbols and type metadata functions + if func.symbol.startswith('_') or func.is_type_meta_function(): return + (ns, subsymbol) = self._transformer.split_csymbol(func.symbol) assert ns == self._namespace if self._is_constructor(func, subsymbol): diff -Nru gobject-introspection-1.31.20/giscanner/mallardwriter.py gobject-introspection-1.31.22/giscanner/mallardwriter.py --- gobject-introspection-1.31.20/giscanner/mallardwriter.py 2012-02-22 17:57:37.000000000 +0000 +++ gobject-introspection-1.31.22/giscanner/mallardwriter.py 2012-03-15 16:38:00.000000000 +0000 @@ -246,7 +246,7 @@ page_id=page_id, formatter=self._formatter) - output_file_name = os.path.join(os.path.dirname(output), + output_file_name = os.path.join(os.path.abspath(output), page_id + '.page') fp = open(output_file_name, 'w') fp.write(result) diff -Nru gobject-introspection-1.31.20/gobject-introspection-1.0.pc gobject-introspection-1.31.22/gobject-introspection-1.0.pc --- gobject-introspection-1.31.20/gobject-introspection-1.0.pc 2012-03-05 14:47:08.000000000 +0000 +++ gobject-introspection-1.31.22/gobject-introspection-1.0.pc 2012-03-21 14:01:15.000000000 +0000 @@ -19,4 +19,4 @@ Name: gobject-introspection Description: GObject Introspection -Version: 1.31.20 +Version: 1.31.22 diff -Nru gobject-introspection-1.31.20/gobject-introspection-no-export-1.0.pc gobject-introspection-1.31.22/gobject-introspection-no-export-1.0.pc --- gobject-introspection-1.31.20/gobject-introspection-no-export-1.0.pc 2012-03-05 14:47:08.000000000 +0000 +++ gobject-introspection-1.31.22/gobject-introspection-no-export-1.0.pc 2012-03-21 14:01:15.000000000 +0000 @@ -18,4 +18,4 @@ Name: gobject-introspection Description: GObject Introspection -Version: 1.31.20 +Version: 1.31.22 diff -Nru gobject-introspection-1.31.20/gtk-doc.make gobject-introspection-1.31.22/gtk-doc.make --- gobject-introspection-1.31.20/gtk-doc.make 2012-02-07 23:30:58.000000000 +0000 +++ gobject-introspection-1.31.22/gtk-doc.make 2012-03-21 14:00:42.000000000 +0000 @@ -200,7 +200,7 @@ rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ fi -maintainer-clean-local: clean +maintainer-clean-local: @rm -rf xml html install-data-local: diff -Nru gobject-introspection-1.31.20/tests/scanner/GetType-1.0-expected.gir gobject-introspection-1.31.22/tests/scanner/GetType-1.0-expected.gir --- gobject-introspection-1.31.20/tests/scanner/GetType-1.0-expected.gir 1970-01-01 00:00:00.000000000 +0000 +++ gobject-introspection-1.31.22/tests/scanner/GetType-1.0-expected.gir 2012-03-08 14:16:01.000000000 +0000 @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + This shouldn't be scanned as a *_get_type function because it doesn't return +a GType. It will generate a warning. + + true + + + + + This shouldn't be scanned as a *_get_type function because it doesn't return +a GType. It will generate a warning. + + true + + + + + This shouldn't be scanned as a *_get_type function because it takes +arguments. + + 0 + + + + + + + + + + + + + + diff -Nru gobject-introspection-1.31.20/tests/scanner/gettype.c gobject-introspection-1.31.22/tests/scanner/gettype.c --- gobject-introspection-1.31.20/tests/scanner/gettype.c 1970-01-01 00:00:00.000000000 +0000 +++ gobject-introspection-1.31.22/tests/scanner/gettype.c 2012-03-08 14:16:01.000000000 +0000 @@ -0,0 +1,62 @@ +#include "gettype.h" + +G_DEFINE_TYPE(GetTypeObject, gettype_object, G_TYPE_OBJECT); + +static void +gettype_object_class_init (GetTypeObjectClass *klass) +{ +} + +static void +gettype_object_init (GetTypeObject *object) +{ +} + +GetTypeObject * +gettype_object_new (void) +{ + return g_object_new (GETTYPE_TYPE_OBJECT, NULL); +} + +/** + * gettype_object_nonmeta1_get_type: + * @obj: self + * + * This shouldn't be scanned as a *_get_type function because it takes + * arguments. + * + * Returns: 0 + */ +GType +gettype_object_nonmeta1_get_type (GetTypeObject *obj) +{ + return 0; +} + +/** + * gettype_object_nonmeta2_get_type: + * + * This shouldn't be scanned as a *_get_type function because it doesn't return + * a GType. It will generate a warning. + * + * Returns: true + */ +gboolean +gettype_object_nonmeta2_get_type (void) +{ + return TRUE; +} + +/** + * gettype_object_nonmeta_get_gtype: + * + * This shouldn't be scanned as a *_get_type function because it doesn't return + * a GType. It will generate a warning. + * + * Returns: true + */ +gboolean +gettype_object_nonmeta_get_gtype (void) +{ + return TRUE; +} diff -Nru gobject-introspection-1.31.20/tests/scanner/gettype.h gobject-introspection-1.31.22/tests/scanner/gettype.h --- gobject-introspection-1.31.20/tests/scanner/gettype.h 1970-01-01 00:00:00.000000000 +0000 +++ gobject-introspection-1.31.22/tests/scanner/gettype.h 2012-03-08 14:16:01.000000000 +0000 @@ -0,0 +1,29 @@ +#ifndef __GETTYPE_OBJECT_H__ +#define __GETTYPE_OBJECT_H__ + +#include + +#define GETTYPE_TYPE_OBJECT (gettype_object_get_type ()) +#define GETTYPE_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GETTYPE_TYPE_OBJECT, GetTypeObject)) +#define GETTYPE_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GETTYPE_TYPE_OBJECT)) + +typedef struct _GetTypeObject GetTypeObject; +typedef struct _GetTypeObjectClass GetTypeObjectClass; +struct _GetTypeObject +{ + GObject parent_instance; +}; + +struct _GetTypeObjectClass +{ + GObjectClass parent_class; +}; + +GType gettype_object_get_type (void) G_GNUC_CONST; +GetTypeObject* gettype_object_new (void); + +GType gettype_object_nonmeta1_get_type (GetTypeObject *obj); +gboolean gettype_object_nonmeta2_get_type (void); +gboolean gettype_object_nonmeta_get_gtype (void); + +#endif /* __GETTYPE_OBJECT_H__ */ diff -Nru gobject-introspection-1.31.20/tests/scanner/Makefile.am gobject-introspection-1.31.22/tests/scanner/Makefile.am --- gobject-introspection-1.31.20/tests/scanner/Makefile.am 2011-10-20 21:16:15.000000000 +0000 +++ gobject-introspection-1.31.22/tests/scanner/Makefile.am 2012-03-08 14:16:01.000000000 +0000 @@ -1,14 +1,15 @@ include $(top_srcdir)/common.mk include $(top_srcdir)/Makefile.introspection -INTROSPECTION_SCANNER_ARGS += --warn-all --warn-error -I. +INTROSPECTION_SCANNER_ARGS += --warn-all check_LTLIBRARIES = \ libannotation.la \ libtestinherit.la \ libfoo.la \ libutility.la \ - libgtkfrob.la + libgtkfrob.la \ + libgettype.la if HAVE_CAIRO check_LTLIBRARIES += libregress.la endif @@ -28,6 +29,7 @@ libgtkfrob_la_SOURCES = $(srcdir)/gtkfrob.c $(srcdir)/gtkfrob.h libregress_la_SOURCES = $(srcdir)/regress.c $(srcdir)/regress.h libregress_la_LIBADD = $(GIO_LIBS) $(CAIRO_LIBS) +libgettype_la_SOURCES = $(srcdir)/gettype.c $(srcdir)/gettype.h testsdir = $(datadir)/gobject-introspection-1.0/tests tests_DATA = $(libregress_la_SOURCES) @@ -53,7 +55,7 @@ Regress_1_0_gir_LIBS = libregress.la Regress_1_0_gir_INCLUDES = cairo-1.0 Gio-2.0 Regress_1_0_gir_FILES = $(libregress_la_SOURCES) -Regress_1_0_gir_SCANNERFLAGS = --c-include="regress.h" +Regress_1_0_gir_SCANNERFLAGS = --c-include="regress.h" --warn-error if HAVE_CAIRO GIRS += Regress-1.0.gir endif @@ -63,7 +65,7 @@ Annotation_1_0_gir_LIBS = libannotation.la Annotation_1_0_gir_INCLUDES = GObject-2.0 Utility-1.0 Annotation_1_0_gir_FILES = $(libannotation_la_SOURCES) -Annotation_1_0_gir_SCANNERFLAGS = --c-include="annotation.h" +Annotation_1_0_gir_SCANNERFLAGS = --c-include="annotation.h" --warn-error GIRS += Annotation-1.0.gir TestInherit-1.0.gir: Utility-1.0.gir libtestinherit.la @@ -71,7 +73,7 @@ TestInherit_1_0_gir_LIBS = libtestinherit.la TestInherit_1_0_gir_INCLUDES = GObject-2.0 Utility-1.0 TestInherit_1_0_gir_FILES = $(libtestinherit_la_SOURCES) -TestInherit_1_0_gir_SCANNERFLAGS = --c-include="drawable.h" +TestInherit_1_0_gir_SCANNERFLAGS = --c-include="drawable.h" --warn-error GIRS += TestInherit-1.0.gir Foo-1.0.gir: Utility-1.0.gir libfoo.la @@ -79,7 +81,7 @@ Foo_1_0_gir_LIBS = libfoo.la Foo_1_0_gir_INCLUDES = GObject-2.0 Gio-2.0 Utility-1.0 Foo_1_0_gir_FILES = $(srcdir)/foo.h $(srcdir)/foo.c -Foo_1_0_gir_SCANNERFLAGS = --c-include="foo.h" +Foo_1_0_gir_SCANNERFLAGS = --c-include="foo.h" --warn-error GIRS += Foo-1.0.gir Utility-1.0.gir: libutility.la @@ -87,7 +89,7 @@ Utility_1_0_gir_LIBS = libutility.la Utility_1_0_gir_INCLUDES = GObject-2.0 Utility_1_0_gir_FILES = $(libutility_la_SOURCES) -Utility_1_0_gir_SCANNERFLAGS = --c-include="utility.h" +Utility_1_0_gir_SCANNERFLAGS = --c-include="utility.h" --warn-error GIRS += Utility-1.0.gir # This one tests different --namespace and --strip-prefix @@ -96,9 +98,19 @@ GtkFrob_1_0_gir_LIBS = libgtkfrob.la GtkFrob_1_0_gir_INCLUDES = GObject-2.0 GtkFrob_1_0_gir_FILES = $(libgtkfrob_la_SOURCES) -GtkFrob_1_0_gir_SCANNERFLAGS = --identifier-prefix=Gtk --symbol-prefix=gtk_frob +GtkFrob_1_0_gir_SCANNERFLAGS = --identifier-prefix=Gtk --symbol-prefix=gtk_frob --warn-error GIRS += GtkFrob-1.0.gir +# This tests that functions called _get_type are only matched if they have no +# arguments and return GType +GetType-1.0.gir: libgettype.la +GetType_1_0_gir_PACKAGES = gobject-2.0 +GetType_1_0_gir_LIBS = libgettype.la +GetType_1_0_gir_INCLUDES = GObject-2.0 +GetType_1_0_gir_FILES = $(libgettype_la_SOURCES) +GetType_1_0_gir_SCANNERFLAGS = --c-include="gettype.h" --identifier-prefix=GetType --symbol-prefix=gettype +GIRS += GetType-1.0.gir + if !OS_WIN32 check_PROGRAMS = barapp diff -Nru gobject-introspection-1.31.20/tests/scanner/Makefile.in gobject-introspection-1.31.22/tests/scanner/Makefile.in --- gobject-introspection-1.31.20/tests/scanner/Makefile.in 2012-03-05 14:47:03.000000000 +0000 +++ gobject-introspection-1.31.22/tests/scanner/Makefile.in 2012-03-21 14:01:10.000000000 +0000 @@ -110,6 +110,9 @@ libfoo_la_DEPENDENCIES = $(top_builddir)/libgirepository-1.0.la am_libfoo_la_OBJECTS = foo.lo libfoo_la_OBJECTS = $(am_libfoo_la_OBJECTS) +libgettype_la_LIBADD = +am_libgettype_la_OBJECTS = gettype.lo +libgettype_la_OBJECTS = $(am_libgettype_la_OBJECTS) libgtkfrob_la_LIBADD = am_libgtkfrob_la_OBJECTS = gtkfrob.lo libgtkfrob_la_OBJECTS = $(am_libgtkfrob_la_OBJECTS) @@ -163,13 +166,13 @@ am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libannotation_la_SOURCES) $(libfoo_la_SOURCES) \ - $(libgtkfrob_la_SOURCES) $(libregress_la_SOURCES) \ - $(libtestinherit_la_SOURCES) $(libutility_la_SOURCES) \ - $(barapp_SOURCES) + $(libgettype_la_SOURCES) $(libgtkfrob_la_SOURCES) \ + $(libregress_la_SOURCES) $(libtestinherit_la_SOURCES) \ + $(libutility_la_SOURCES) $(barapp_SOURCES) DIST_SOURCES = $(libannotation_la_SOURCES) $(libfoo_la_SOURCES) \ - $(libgtkfrob_la_SOURCES) $(libregress_la_SOURCES) \ - $(libtestinherit_la_SOURCES) $(libutility_la_SOURCES) \ - $(am__barapp_SOURCES_DIST) + $(libgettype_la_SOURCES) $(libgtkfrob_la_SOURCES) \ + $(libregress_la_SOURCES) $(libtestinherit_la_SOURCES) \ + $(libutility_la_SOURCES) $(am__barapp_SOURCES_DIST) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -384,7 +387,7 @@ --add-include-path=$(srcdir) \ --add-include-path=$(top_srcdir)/gir \ --add-include-path=$(builddir) \ - --add-include-path=$(top_builddir) --warn-all --warn-error -I. + --add-include-path=$(top_builddir) --warn-all INTROSPECTION_COMPILER = \ env PATH=.libs:$(PATH) \ $(top_builddir)/g-ir-compiler$(EXEEXT) @@ -440,7 +443,7 @@ _gir_silent_compiler_ = $(_gir_silent_compiler_$(_gir_verbosity)) _gir_silent_compiler_0 = @echo " GICOMP $(1)"; check_LTLIBRARIES = libannotation.la libtestinherit.la libfoo.la \ - libutility.la libgtkfrob.la $(am__append_1) + libutility.la libgtkfrob.la libgettype.la $(am__append_1) AM_CPPFLAGS = -I$(top_srcdir)/girepository AM_CFLAGS = $(GIO_CFLAGS) $(GOBJECT_CFLAGS) $(GTHREAD_CFLAGS) # -rpath needed to force libtool to build a shared library for a check_LTLIBRARIES @@ -454,6 +457,7 @@ libgtkfrob_la_SOURCES = $(srcdir)/gtkfrob.c $(srcdir)/gtkfrob.h libregress_la_SOURCES = $(srcdir)/regress.c $(srcdir)/regress.h libregress_la_LIBADD = $(GIO_LIBS) $(CAIRO_LIBS) +libgettype_la_SOURCES = $(srcdir)/gettype.c $(srcdir)/gettype.h testsdir = $(datadir)/gobject-introspection-1.0/tests tests_DATA = $(libregress_la_SOURCES) libregress_la_CFLAGS = $(AM_CFLAGS) $(CAIRO_CFLAGS) @@ -461,7 +465,8 @@ # .gir --[scanner]-> .typelib GIRS = $(am__append_3) Annotation-1.0.gir TestInherit-1.0.gir \ - Foo-1.0.gir Utility-1.0.gir GtkFrob-1.0.gir $(am__append_4) + Foo-1.0.gir Utility-1.0.gir GtkFrob-1.0.gir GetType-1.0.gir \ + $(am__append_4) TYPELIBS = $(GIRS:.gir=.typelib) CHECKGIRS = $(GIRS:.gir=.gir.check) EXPECTEDGIRS = $(GIRS:.gir=-expected.gir) @@ -471,32 +476,37 @@ Regress_1_0_gir_LIBS = libregress.la Regress_1_0_gir_INCLUDES = cairo-1.0 Gio-2.0 Regress_1_0_gir_FILES = $(libregress_la_SOURCES) -Regress_1_0_gir_SCANNERFLAGS = --c-include="regress.h" +Regress_1_0_gir_SCANNERFLAGS = --c-include="regress.h" --warn-error Annotation_1_0_gir_PACKAGES = gobject-2.0 Annotation_1_0_gir_LIBS = libannotation.la Annotation_1_0_gir_INCLUDES = GObject-2.0 Utility-1.0 Annotation_1_0_gir_FILES = $(libannotation_la_SOURCES) -Annotation_1_0_gir_SCANNERFLAGS = --c-include="annotation.h" +Annotation_1_0_gir_SCANNERFLAGS = --c-include="annotation.h" --warn-error TestInherit_1_0_gir_PACKAGES = gobject-2.0 TestInherit_1_0_gir_LIBS = libtestinherit.la TestInherit_1_0_gir_INCLUDES = GObject-2.0 Utility-1.0 TestInherit_1_0_gir_FILES = $(libtestinherit_la_SOURCES) -TestInherit_1_0_gir_SCANNERFLAGS = --c-include="drawable.h" +TestInherit_1_0_gir_SCANNERFLAGS = --c-include="drawable.h" --warn-error Foo_1_0_gir_PACKAGES = gobject-2.0 Foo_1_0_gir_LIBS = libfoo.la Foo_1_0_gir_INCLUDES = GObject-2.0 Gio-2.0 Utility-1.0 Foo_1_0_gir_FILES = $(srcdir)/foo.h $(srcdir)/foo.c -Foo_1_0_gir_SCANNERFLAGS = --c-include="foo.h" +Foo_1_0_gir_SCANNERFLAGS = --c-include="foo.h" --warn-error Utility_1_0_gir_PACKAGES = gobject-2.0 Utility_1_0_gir_LIBS = libutility.la Utility_1_0_gir_INCLUDES = GObject-2.0 Utility_1_0_gir_FILES = $(libutility_la_SOURCES) -Utility_1_0_gir_SCANNERFLAGS = --c-include="utility.h" +Utility_1_0_gir_SCANNERFLAGS = --c-include="utility.h" --warn-error GtkFrob_1_0_gir_PACKAGES = gobject-2.0 GtkFrob_1_0_gir_LIBS = libgtkfrob.la GtkFrob_1_0_gir_INCLUDES = GObject-2.0 GtkFrob_1_0_gir_FILES = $(libgtkfrob_la_SOURCES) -GtkFrob_1_0_gir_SCANNERFLAGS = --identifier-prefix=Gtk --symbol-prefix=gtk_frob +GtkFrob_1_0_gir_SCANNERFLAGS = --identifier-prefix=Gtk --symbol-prefix=gtk_frob --warn-error +GetType_1_0_gir_PACKAGES = gobject-2.0 +GetType_1_0_gir_LIBS = libgettype.la +GetType_1_0_gir_INCLUDES = GObject-2.0 +GetType_1_0_gir_FILES = $(libgettype_la_SOURCES) +GetType_1_0_gir_SCANNERFLAGS = --c-include="gettype.h" --identifier-prefix=GetType --symbol-prefix=gettype @OS_WIN32_FALSE@barapp_SOURCES = $(srcdir)/barapp.c $(srcdir)/barapp.h @OS_WIN32_FALSE@barapp_LDADD = $(top_builddir)/libgirepository-1.0.la @OS_WIN32_FALSE@barapp_LDFLAGS = -export-dynamic @@ -552,6 +562,8 @@ $(AM_V_CCLD)$(LINK) $(libannotation_la_OBJECTS) $(libannotation_la_LIBADD) $(LIBS) libfoo.la: $(libfoo_la_OBJECTS) $(libfoo_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(libfoo_la_OBJECTS) $(libfoo_la_LIBADD) $(LIBS) +libgettype.la: $(libgettype_la_OBJECTS) $(libgettype_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(libgettype_la_OBJECTS) $(libgettype_la_LIBADD) $(LIBS) libgtkfrob.la: $(libgtkfrob_la_OBJECTS) $(libgtkfrob_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(libgtkfrob_la_OBJECTS) $(libgtkfrob_la_LIBADD) $(LIBS) libregress.la: $(libregress_la_OBJECTS) $(libregress_la_DEPENDENCIES) @@ -583,6 +595,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/barapp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/drawable.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/foo.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettype.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkfrob.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libregress_la-regress.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utility.Plo@am__quote@ @@ -627,6 +640,14 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o foo.lo `test -f '$(srcdir)/foo.c' || echo '$(srcdir)/'`$(srcdir)/foo.c +gettype.lo: $(srcdir)/gettype.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gettype.lo -MD -MP -MF $(DEPDIR)/gettype.Tpo -c -o gettype.lo `test -f '$(srcdir)/gettype.c' || echo '$(srcdir)/'`$(srcdir)/gettype.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gettype.Tpo $(DEPDIR)/gettype.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(srcdir)/gettype.c' object='gettype.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gettype.lo `test -f '$(srcdir)/gettype.c' || echo '$(srcdir)/'`$(srcdir)/gettype.c + gtkfrob.lo: $(srcdir)/gtkfrob.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gtkfrob.lo -MD -MP -MF $(DEPDIR)/gtkfrob.Tpo -c -o gtkfrob.lo `test -f '$(srcdir)/gtkfrob.c' || echo '$(srcdir)/'`$(srcdir)/gtkfrob.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gtkfrob.Tpo $(DEPDIR)/gtkfrob.Plo @@ -1004,6 +1025,10 @@ # This one tests different --namespace and --strip-prefix GtkFrob-1.0.gir: libgtkfrob.la +# This tests that functions called _get_type are only matched if they have no +# arguments and return GType +GetType-1.0.gir: libgettype.la + @OS_WIN32_FALSE@Bar-1.0.gir: barapp Headeronly-1.0.gir: headeronly.h