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