summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2010-07-07 14:07:17 -0400
committerColin Walters <walters@verbum.org>2010-07-09 14:15:52 -0400
commit5cb925b20739c04e18e94a03a3e4e68041894b03 (patch)
tree246f895c0a92ab1afd341170e45908104964ece3
parent07a36b499a7db6c65132511dc43f6acd281100ec (diff)
downloadgobject-introspection-5cb925b20739c04e18e94a03a3e4e68041894b03.tar.gz
Don't include machine-dependent integral types in the typelib
Previously we had both e.g. GI_TYPE_TAG_LONG and GI_TYPE_TAG_INT64, but in fact the typelib is already machine-specific, so it makes sense to just encode this as a fixed type. The .gir remains abstract. We also remove size_t from the typelib; one would never want to treat it differently than an integer. time_t is removed as well; while bindings like gjs had special handling to turn it into e.g. a JS Date object, I don't think we should encourage people to use these POSIX types in their API. Use GTimeVal or the like instead. Because the typelib is now really machine-specific, we need to remove the -expected.tgirs from git. (We could potentially add a check which wasn't just a literal diff later) https://bugzilla.gnome.org/show_bug.cgi?id=623774
-rw-r--r--configure.ac7
-rw-r--r--gir/Everything-1.0-expected.gir27
-rw-r--r--gir/GIMarshallingTests-1.0-expected.gir32
-rw-r--r--girepository/giconstantinfo.c21
-rw-r--r--girepository/gifieldinfo.c60
-rw-r--r--girepository/girepository.c18
-rw-r--r--girepository/girffi.c29
-rw-r--r--girepository/girnode.c27
-rw-r--r--girepository/girparser.c69
-rw-r--r--girepository/girwriter.c18
-rw-r--r--girepository/gitypelib.c11
-rw-r--r--girepository/gitypes.h50
-rw-r--r--giscanner/ast.py16
-rw-r--r--tests/scanner/BarApp-1.0-expected.tgir38
-rw-r--r--tests/scanner/GtkFrob-1.0-expected.tgir15
-rw-r--r--tests/scanner/Makefile.am32
-rw-r--r--tests/scanner/annotation-1.0-expected.gir6
-rw-r--r--tests/scanner/annotation-1.0-expected.tgir563
-rw-r--r--tests/scanner/drawable-1.0-expected.tgir72
-rw-r--r--tests/scanner/foo-1.0-expected.gir2
-rw-r--r--tests/scanner/foo-1.0-expected.tgir735
-rw-r--r--tests/scanner/utility-1.0-expected.gir2
-rw-r--r--tests/scanner/utility-1.0-expected.tgir123
23 files changed, 136 insertions, 1837 deletions
diff --git a/configure.ac b/configure.ac
index 9a639791..5f724d1b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -180,11 +180,14 @@ AC_SUBST(FFI_PC_CFLAGS)
AC_SUBST(FFI_PC_LIBS)
AC_SUBST(FFI_PC_PACKAGES)
-AC_CHECK_SIZEOF(time_t, [], [#include <time.h>])
+AC_CHECK_SIZEOF(char)
+AC_CHECK_SIZEOF(short)
+AC_CHECK_SIZEOF(int)
+AC_CHECK_SIZEOF(long)
PKG_CHECK_MODULES(GIREPO, [glib-2.0 gobject-2.0 gmodule-2.0 gio-2.0])
-# if we ever remove manual check for ffi and require .pc file, then
+# if we ever remove manual check for ffi and require .pc file, then
# just put libffi in the PKG_CHECK_MODULES(GIREPO) deps
GIREPO_LIBS="$GIREPO_LIBS $GCOV_LIBS $FFI_LIBS"
GIREPO_CFLAGS="$GIREPO_CFLAGS $FFI_CFLAGS"
diff --git a/gir/Everything-1.0-expected.gir b/gir/Everything-1.0-expected.gir
index 023f0bbd..aa7de3b4 100644
--- a/gir/Everything-1.0-expected.gir
+++ b/gir/Everything-1.0-expected.gir
@@ -1888,21 +1888,21 @@ call and can be released on return.</doc>
</function>
<function name="test_size" c:identifier="test_size">
<return-value transfer-ownership="none">
- <type name="size_t" c:type="gsize"/>
+ <type name="gsize" c:type="gsize"/>
</return-value>
<parameters>
<parameter name="in" transfer-ownership="none">
- <type name="size_t" c:type="gsize"/>
+ <type name="gsize" c:type="gsize"/>
</parameter>
</parameters>
</function>
<function name="test_ssize" c:identifier="test_ssize">
<return-value transfer-ownership="none">
- <type name="ssize_t" c:type="gssize"/>
+ <type name="gssize" c:type="gssize"/>
</return-value>
<parameters>
<parameter name="in" transfer-ownership="none">
- <type name="ssize_t" c:type="gssize"/>
+ <type name="gssize" c:type="gssize"/>
</parameter>
</parameters>
</function>
@@ -1977,11 +1977,11 @@ call and can be released on return.</doc>
</function>
<function name="test_timet" c:identifier="test_timet">
<return-value transfer-ownership="none">
- <type name="time_t" c:type="time_t"/>
+ <type name="long" c:type="time_t"/>
</return-value>
<parameters>
<parameter name="in" transfer-ownership="none">
- <type name="time_t" c:type="time_t"/>
+ <type name="long" c:type="time_t"/>
</parameter>
</parameters>
</function>
@@ -2321,5 +2321,20 @@ call and can be released on return.</doc>
</parameter>
</parameters>
</function>
+ <function name="test_value_set_fundamental_object"
+ c:identifier="test_value_set_fundamental_object"
+ introspectable="0">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="fundamental_object" transfer-ownership="none">
+ <type name="TestFundamentalObject" c:type="TestFundamentalObject*"/>
+ </parameter>
+ </parameters>
+ </function>
</namespace>
</repository>
diff --git a/gir/GIMarshallingTests-1.0-expected.gir b/gir/GIMarshallingTests-1.0-expected.gir
index 798ecc75..164f7f14 100644
--- a/gir/GIMarshallingTests-1.0-expected.gir
+++ b/gir/GIMarshallingTests-1.0-expected.gir
@@ -2940,7 +2940,7 @@ and/or use gtk-doc annotations. -->
</return-value>
<parameters>
<parameter name="size" transfer-ownership="none">
- <type name="size_t" c:type="gsize"/>
+ <type name="gsize" c:type="gsize"/>
</parameter>
</parameters>
</function>
@@ -2954,7 +2954,7 @@ and/or use gtk-doc annotations. -->
direction="inout"
caller-allocates="0"
transfer-ownership="full">
- <type name="size_t" c:type="gsize*"/>
+ <type name="gsize" c:type="gsize*"/>
</parameter>
</parameters>
</function>
@@ -2967,14 +2967,14 @@ and/or use gtk-doc annotations. -->
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <type name="size_t" c:type="gsize*"/>
+ <type name="gsize" c:type="gsize*"/>
</parameter>
</parameters>
</function>
<function name="size_return"
c:identifier="g_i_marshalling_tests_size_return">
<return-value transfer-ownership="none">
- <type name="size_t" c:type="gsize"/>
+ <type name="gsize" c:type="gsize"/>
</return-value>
</function>
<function name="ssize_in_max"
@@ -2984,7 +2984,7 @@ and/or use gtk-doc annotations. -->
</return-value>
<parameters>
<parameter name="ssize" transfer-ownership="none">
- <type name="ssize_t" c:type="gssize"/>
+ <type name="gssize" c:type="gssize"/>
</parameter>
</parameters>
</function>
@@ -2995,7 +2995,7 @@ and/or use gtk-doc annotations. -->
</return-value>
<parameters>
<parameter name="ssize" transfer-ownership="none">
- <type name="ssize_t" c:type="gssize"/>
+ <type name="gssize" c:type="gssize"/>
</parameter>
</parameters>
</function>
@@ -3009,7 +3009,7 @@ and/or use gtk-doc annotations. -->
direction="inout"
caller-allocates="0"
transfer-ownership="full">
- <type name="ssize_t" c:type="gssize*"/>
+ <type name="gssize" c:type="gssize*"/>
</parameter>
</parameters>
</function>
@@ -3023,7 +3023,7 @@ and/or use gtk-doc annotations. -->
direction="inout"
caller-allocates="0"
transfer-ownership="full">
- <type name="ssize_t" c:type="gssize*"/>
+ <type name="gssize" c:type="gssize*"/>
</parameter>
</parameters>
</function>
@@ -3037,7 +3037,7 @@ and/or use gtk-doc annotations. -->
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <type name="ssize_t" c:type="gssize*"/>
+ <type name="gssize" c:type="gssize*"/>
</parameter>
</parameters>
</function>
@@ -3051,20 +3051,20 @@ and/or use gtk-doc annotations. -->
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <type name="ssize_t" c:type="gssize*"/>
+ <type name="gssize" c:type="gssize*"/>
</parameter>
</parameters>
</function>
<function name="ssize_return_max"
c:identifier="g_i_marshalling_tests_ssize_return_max">
<return-value transfer-ownership="none">
- <type name="ssize_t" c:type="gssize"/>
+ <type name="gssize" c:type="gssize"/>
</return-value>
</function>
<function name="ssize_return_min"
c:identifier="g_i_marshalling_tests_ssize_return_min">
<return-value transfer-ownership="none">
- <type name="ssize_t" c:type="gssize"/>
+ <type name="gssize" c:type="gssize"/>
</return-value>
</function>
<function name="test_interface_test_int8_in"
@@ -3087,7 +3087,7 @@ and/or use gtk-doc annotations. -->
</return-value>
<parameters>
<parameter name="time_t_" transfer-ownership="none">
- <type name="time_t" c:type="time_t"/>
+ <type name="long" c:type="time_t"/>
</parameter>
</parameters>
</function>
@@ -3101,7 +3101,7 @@ and/or use gtk-doc annotations. -->
direction="inout"
caller-allocates="0"
transfer-ownership="full">
- <type name="time_t" c:type="time_t*"/>
+ <type name="long" c:type="time_t*"/>
</parameter>
</parameters>
</function>
@@ -3115,14 +3115,14 @@ and/or use gtk-doc annotations. -->
direction="out"
caller-allocates="0"
transfer-ownership="full">
- <type name="time_t" c:type="time_t*"/>
+ <type name="long" c:type="time_t*"/>
</parameter>
</parameters>
</function>
<function name="time_t_return"
c:identifier="g_i_marshalling_tests_time_t_return">
<return-value transfer-ownership="none">
- <type name="time_t" c:type="time_t"/>
+ <type name="long" c:type="time_t"/>
</return-value>
</function>
<function name="uint16_in" c:identifier="g_i_marshalling_tests_uint16_in">
diff --git a/girepository/giconstantinfo.c b/girepository/giconstantinfo.c
index 4a3b838d..58b223fb 100644
--- a/girepository/giconstantinfo.c
+++ b/girepository/giconstantinfo.c
@@ -129,27 +129,6 @@ g_constant_info_get_value (GIConstantInfo *info,
case GI_TYPE_TAG_DOUBLE:
value->v_double = *(gdouble*)&rinfo->typelib->data[blob->offset];
break;
- case GI_TYPE_TAG_TIME_T:
- value->v_long = *(long*)&rinfo->typelib->data[blob->offset];
- break;
- case GI_TYPE_TAG_SHORT:
- value->v_short = *(gshort*)&rinfo->typelib->data[blob->offset];
- break;
- case GI_TYPE_TAG_USHORT:
- value->v_ushort = *(gushort*)&rinfo->typelib->data[blob->offset];
- break;
- case GI_TYPE_TAG_INT:
- value->v_int = *(gint*)&rinfo->typelib->data[blob->offset];
- break;
- case GI_TYPE_TAG_UINT:
- value->v_uint = *(guint*)&rinfo->typelib->data[blob->offset];
- break;
- case GI_TYPE_TAG_LONG:
- value->v_long = *(glong*)&rinfo->typelib->data[blob->offset];
- break;
- case GI_TYPE_TAG_ULONG:
- value->v_ulong = *(gulong*)&rinfo->typelib->data[blob->offset];
- break;
}
}
}
diff --git a/girepository/gifieldinfo.c b/girepository/gifieldinfo.c
index 14e371f8..9862a723 100644
--- a/girepository/gifieldinfo.c
+++ b/girepository/gifieldinfo.c
@@ -215,15 +215,11 @@ g_field_info_get_field (GIFieldInfo *field_info,
break;
case GI_TYPE_TAG_INT16:
case GI_TYPE_TAG_UINT16:
- case GI_TYPE_TAG_SHORT:
- case GI_TYPE_TAG_USHORT:
value->v_uint16 = G_STRUCT_MEMBER (guint16, mem, offset);
result = TRUE;
break;
case GI_TYPE_TAG_INT32:
case GI_TYPE_TAG_UINT32:
- case GI_TYPE_TAG_INT:
- case GI_TYPE_TAG_UINT:
value->v_uint32 = G_STRUCT_MEMBER (guint32, mem, offset);
result = TRUE;
break;
@@ -232,13 +228,6 @@ g_field_info_get_field (GIFieldInfo *field_info,
value->v_uint64 = G_STRUCT_MEMBER (guint64, mem, offset);
result = TRUE;
break;
- case GI_TYPE_TAG_LONG:
- case GI_TYPE_TAG_ULONG:
- value->v_ulong = G_STRUCT_MEMBER (gulong, mem, offset);
- result = TRUE;
- break;
- case GI_TYPE_TAG_SSIZE:
- case GI_TYPE_TAG_SIZE:
case GI_TYPE_TAG_GTYPE:
value->v_size = G_STRUCT_MEMBER (gsize, mem, offset);
result = TRUE;
@@ -251,16 +240,6 @@ g_field_info_get_field (GIFieldInfo *field_info,
value->v_double = G_STRUCT_MEMBER (gdouble, mem, offset);
result = TRUE;
break;
- case GI_TYPE_TAG_TIME_T:
-#if SIZEOF_TIME_T == 4
- value->v_int32 = G_STRUCT_MEMBER (time_t, mem, offset);
-#elif SIZEOF_TIME_T == 8
- value->v_int64 = G_STRUCT_MEMBER (time_t, mem, offset);
-#else
-# error "Unexpected size for time_t: not 4 or 8"
-#endif
- result = TRUE;
- break;
case GI_TYPE_TAG_UTF8:
case GI_TYPE_TAG_FILENAME:
case GI_TYPE_TAG_ARRAY:
@@ -306,15 +285,11 @@ g_field_info_get_field (GIFieldInfo *field_info,
break;
case GI_TYPE_TAG_INT16:
case GI_TYPE_TAG_UINT16:
- case GI_TYPE_TAG_SHORT:
- case GI_TYPE_TAG_USHORT:
value->v_int = (gint)G_STRUCT_MEMBER (guint16, mem, offset);
result = TRUE;
break;
case GI_TYPE_TAG_INT32:
case GI_TYPE_TAG_UINT32:
- case GI_TYPE_TAG_INT:
- case GI_TYPE_TAG_UINT:
value->v_int = (gint)G_STRUCT_MEMBER (guint32, mem, offset);
result = TRUE;
break;
@@ -323,11 +298,6 @@ g_field_info_get_field (GIFieldInfo *field_info,
value->v_int = (gint)G_STRUCT_MEMBER (guint64, mem, offset);
result = TRUE;
break;
- case GI_TYPE_TAG_LONG:
- case GI_TYPE_TAG_ULONG:
- value->v_int = (gint)G_STRUCT_MEMBER (gulong, mem, offset);
- result = TRUE;
- break;
default:
g_warning("Field %s: Unexpected enum storage type %s",
g_base_info_get_name ((GIBaseInfo *)field_info),
@@ -424,15 +394,11 @@ g_field_info_set_field (GIFieldInfo *field_info,
break;
case GI_TYPE_TAG_INT16:
case GI_TYPE_TAG_UINT16:
- case GI_TYPE_TAG_SHORT:
- case GI_TYPE_TAG_USHORT:
G_STRUCT_MEMBER (guint16, mem, offset) = value->v_uint16;
result = TRUE;
break;
case GI_TYPE_TAG_INT32:
case GI_TYPE_TAG_UINT32:
- case GI_TYPE_TAG_INT:
- case GI_TYPE_TAG_UINT:
G_STRUCT_MEMBER (guint32, mem, offset) = value->v_uint32;
result = TRUE;
break;
@@ -441,13 +407,6 @@ g_field_info_set_field (GIFieldInfo *field_info,
G_STRUCT_MEMBER (guint64, mem, offset) = value->v_uint64;
result = TRUE;
break;
- case GI_TYPE_TAG_LONG:
- case GI_TYPE_TAG_ULONG:
- G_STRUCT_MEMBER (gulong, mem, offset)= value->v_ulong;
- result = TRUE;
- break;
- case GI_TYPE_TAG_SSIZE:
- case GI_TYPE_TAG_SIZE:
case GI_TYPE_TAG_GTYPE:
G_STRUCT_MEMBER (gsize, mem, offset) = value->v_size;
result = TRUE;
@@ -460,16 +419,6 @@ g_field_info_set_field (GIFieldInfo *field_info,
G_STRUCT_MEMBER (gdouble, mem, offset)= value->v_double;
result = TRUE;
break;
- case GI_TYPE_TAG_TIME_T:
-#if SIZEOF_TIME_T == 4
- G_STRUCT_MEMBER (time_t, mem, offset) = value->v_int32;
-#elif SIZEOF_TIME_T == 8
- G_STRUCT_MEMBER (time_t, mem, offset) = value->v_int64;
-#else
-# error "Unexpected size for time_t: not 4 or 8"
-#endif
- result = TRUE;
- break;
case GI_TYPE_TAG_UTF8:
case GI_TYPE_TAG_FILENAME:
case GI_TYPE_TAG_ARRAY:
@@ -510,15 +459,11 @@ g_field_info_set_field (GIFieldInfo *field_info,
break;
case GI_TYPE_TAG_INT16:
case GI_TYPE_TAG_UINT16:
- case GI_TYPE_TAG_SHORT:
- case GI_TYPE_TAG_USHORT:
G_STRUCT_MEMBER (guint16, mem, offset) = (guint16)value->v_int;
result = TRUE;
break;
case GI_TYPE_TAG_INT32:
case GI_TYPE_TAG_UINT32:
- case GI_TYPE_TAG_INT:
- case GI_TYPE_TAG_UINT:
G_STRUCT_MEMBER (guint32, mem, offset) = (guint32)value->v_int;
result = TRUE;
break;
@@ -527,11 +472,6 @@ g_field_info_set_field (GIFieldInfo *field_info,
G_STRUCT_MEMBER (guint64, mem, offset) = (guint64)value->v_int;
result = TRUE;
break;
- case GI_TYPE_TAG_LONG:
- case GI_TYPE_TAG_ULONG:
- G_STRUCT_MEMBER (gulong, mem, offset) = (gulong)value->v_int;
- result = TRUE;
- break;
default:
g_warning("Field %s: Unexpected enum storage type %s",
g_base_info_get_name ((GIBaseInfo *)field_info),
diff --git a/girepository/girepository.c b/girepository/girepository.c
index 66a604eb..ba6756ea 100644
--- a/girepository/girepository.c
+++ b/girepository/girepository.c
@@ -1319,28 +1319,10 @@ g_type_tag_to_string (GITypeTag type)
return "int64";
case GI_TYPE_TAG_UINT64:
return "uint64";
- case GI_TYPE_TAG_SHORT:
- return "short";
- case GI_TYPE_TAG_USHORT:
- return "ushort";
- case GI_TYPE_TAG_INT:
- return "int";
- case GI_TYPE_TAG_UINT:
- return "uint";
- case GI_TYPE_TAG_LONG:
- return "long";
- case GI_TYPE_TAG_ULONG:
- return "ulong";
- case GI_TYPE_TAG_SSIZE:
- return "ssize";
- case GI_TYPE_TAG_SIZE:
- return "size";
case GI_TYPE_TAG_FLOAT:
return "float";
case GI_TYPE_TAG_DOUBLE:
return "double";
- case GI_TYPE_TAG_TIME_T:
- return "time_t";
case GI_TYPE_TAG_GTYPE:
return "GType";
case GI_TYPE_TAG_UTF8:
diff --git a/girepository/girffi.c b/girepository/girffi.c
index 559af258..23b076bc 100644
--- a/girepository/girffi.c
+++ b/girepository/girffi.c
@@ -54,25 +54,6 @@ _gi_type_tag_get_ffi_type (GITypeTag tag,
return &ffi_type_sint64;
case GI_TYPE_TAG_UINT64:
return &ffi_type_uint64;
- case GI_TYPE_TAG_SHORT:
- return &ffi_type_sshort;
- case GI_TYPE_TAG_USHORT:
- return &ffi_type_ushort;
- case GI_TYPE_TAG_INT:
- return &ffi_type_sint;
- case GI_TYPE_TAG_UINT:
- return &ffi_type_uint;
- case GI_TYPE_TAG_SSIZE:
-#if GLIB_SIZEOF_SIZE_T == 4
- return &ffi_type_sint32;
-#elif GLIB_SIZEOF_SIZE_T == 8
- return &ffi_type_sint64;
-#else
-# error "Unexpected size for size_t: not 4 or 8"
-#endif
- case GI_TYPE_TAG_LONG:
- return &ffi_type_slong;
- case GI_TYPE_TAG_SIZE:
case GI_TYPE_TAG_GTYPE:
#if GLIB_SIZEOF_SIZE_T == 4
return &ffi_type_uint32;
@@ -81,16 +62,6 @@ _gi_type_tag_get_ffi_type (GITypeTag tag,
#else
# error "Unexpected size for size_t: not 4 or 8"
#endif
- case GI_TYPE_TAG_TIME_T:
-#if SIZEOF_TIME_T == 4
- return &ffi_type_sint32;
-#elif SIZEOF_TIME_T == 8
- return &ffi_type_sint64;
-#else
-# error "Unexpected size for time_t: not 4 or 8"
-#endif
- case GI_TYPE_TAG_ULONG:
- return &ffi_type_ulong;
case GI_TYPE_TAG_FLOAT:
return &ffi_type_float;
case GI_TYPE_TAG_DOUBLE:
diff --git a/girepository/girnode.c b/girepository/girnode.c
index af24161d..17b739ea 100644
--- a/girepository/girnode.c
+++ b/girepository/girnode.c
@@ -2319,33 +2319,6 @@ g_ir_node_build_typelib (GIrNode *node,
blob->size = 8;
DO_ALIGNED_COPY(&data[blob->offset], parse_uint_value (constant->value), guint64);
break;
- case GI_TYPE_TAG_SHORT:
- blob->size = sizeof (gshort);
- *(gshort*)&data[blob->offset] = (gshort) parse_int_value (constant->value);
- break;
- case GI_TYPE_TAG_USHORT:
- blob->size = sizeof (gushort);
- *(gushort*)&data[blob->offset] = (gushort) parse_uint_value (constant->value);
- break;
- case GI_TYPE_TAG_INT:
- blob->size = sizeof (gint);
- *(gint*)&data[blob->offset] = (gint) parse_int_value (constant->value);
- break;
- case GI_TYPE_TAG_UINT:
- blob->size = sizeof (guint);
- *(gint*)&data[blob->offset] = (guint) parse_uint_value (constant->value);
- break;
- case GI_TYPE_TAG_SSIZE: /* FIXME */
- case GI_TYPE_TAG_LONG:
- blob->size = sizeof (glong);
- DO_ALIGNED_COPY(&data[blob->offset], parse_int_value (constant->value), glong);
- break;
- case GI_TYPE_TAG_SIZE: /* FIXME */
- case GI_TYPE_TAG_TIME_T:
- case GI_TYPE_TAG_ULONG:
- blob->size = sizeof (gulong);
- DO_ALIGNED_COPY(&data[blob->offset], parse_uint_value (constant->value), gulong);
- break;
case GI_TYPE_TAG_FLOAT:
blob->size = sizeof (gfloat);
DO_ALIGNED_COPY(&data[blob->offset], parse_float_value (constant->value), gfloat);
diff --git a/girepository/girparser.c b/girepository/girparser.c
index 488d77b9..8af0396d 100644
--- a/girepository/girparser.c
+++ b/girepository/girparser.c
@@ -328,17 +328,36 @@ static GIrNodeType * parse_type_internal (const gchar *str, gchar **next, gboole
typedef struct {
const gchar *str;
+ guint size;
+ guint is_signed : 1;
+} IntegerAliasInfo;
+
+static IntegerAliasInfo integer_aliases[] = {
+ { "char", SIZEOF_CHAR, 0 },
+ { "short", SIZEOF_SHORT, 1 },
+ { "ushort", SIZEOF_SHORT, 0 },
+ { "int", SIZEOF_INT, 1 },
+ { "uint", SIZEOF_INT, 0 },
+ { "long", SIZEOF_LONG, 1 },
+ { "ulong", SIZEOF_LONG, 0 },
+ { "gsize", GLIB_SIZEOF_SIZE_T, 0 },
+ { "gssize", GLIB_SIZEOF_SIZE_T, 1 },
+};
+
+typedef struct {
+ const gchar *str;
gint tag;
gboolean pointer;
} BasicTypeInfo;
+#define BASIC_TYPE_FIXED_OFFSET 3
+
static BasicTypeInfo basic_types[] = {
{ "none", GI_TYPE_TAG_VOID, 0 },
{ "any", GI_TYPE_TAG_VOID, 1 },
{ "bool", GI_TYPE_TAG_BOOLEAN, 0 },
- { "char", GI_TYPE_TAG_INT8, 0 },
- { "int8", GI_TYPE_TAG_INT8, 0 },
+ { "int8", GI_TYPE_TAG_INT8, 0 }, /* Start of BASIC_TYPE_FIXED_OFFSET */
{ "uint8", GI_TYPE_TAG_UINT8, 0 },
{ "int16", GI_TYPE_TAG_INT16, 0 },
{ "uint16", GI_TYPE_TAG_UINT16, 0 },
@@ -346,19 +365,8 @@ static BasicTypeInfo basic_types[] = {
{ "uint32", GI_TYPE_TAG_UINT32, 0 },
{ "int64", GI_TYPE_TAG_INT64, 0 },
{ "uint64", GI_TYPE_TAG_UINT64, 0 },
- { "short", GI_TYPE_TAG_SHORT, 0 },
- { "ushort", GI_TYPE_TAG_USHORT, 0 },
- { "int", GI_TYPE_TAG_INT, 0 },
- { "uint", GI_TYPE_TAG_UINT, 0 },
- { "long", GI_TYPE_TAG_LONG, 0 },
- { "ulong", GI_TYPE_TAG_ULONG, 0 },
- { "ssize_t", GI_TYPE_TAG_SSIZE, 0 },
- { "ssize", GI_TYPE_TAG_SSIZE, 0 },
- { "size_t", GI_TYPE_TAG_SIZE, 0 },
- { "size", GI_TYPE_TAG_SIZE, 0 },
{ "float", GI_TYPE_TAG_FLOAT, 0 },
{ "double", GI_TYPE_TAG_DOUBLE, 0 },
- { "time_t", GI_TYPE_TAG_TIME_T, 0 },
{ "GType", GI_TYPE_TAG_GTYPE, 0 },
{ "utf8", GI_TYPE_TAG_UTF8, 1 },
{ "filename", GI_TYPE_TAG_FILENAME,1 },
@@ -375,6 +383,41 @@ parse_basic (const char *str)
if (g_str_has_prefix (str, basic_types[i].str))
return &(basic_types[i]);
}
+ for (i = 0; i < G_N_ELEMENTS (integer_aliases); i++)
+ {
+ if (g_str_has_prefix (str, integer_aliases[i].str))
+ {
+ switch (integer_aliases[i].size)
+ {
+ case sizeof(guint8):
+ if (integer_aliases[i].is_signed)
+ return &basic_types[BASIC_TYPE_FIXED_OFFSET];
+ else
+ return &basic_types[BASIC_TYPE_FIXED_OFFSET+1];
+ break;
+ case sizeof(guint16):
+ if (integer_aliases[i].is_signed)
+ return &basic_types[BASIC_TYPE_FIXED_OFFSET+2];
+ else
+ return &basic_types[BASIC_TYPE_FIXED_OFFSET+3];
+ break;
+ case sizeof(guint32):
+ if (integer_aliases[i].is_signed)
+ return &basic_types[BASIC_TYPE_FIXED_OFFSET+4];
+ else
+ return &basic_types[BASIC_TYPE_FIXED_OFFSET+5];
+ break;
+ case sizeof(guint64):
+ if (integer_aliases[i].is_signed)
+ return &basic_types[BASIC_TYPE_FIXED_OFFSET+6];
+ else
+ return &basic_types[BASIC_TYPE_FIXED_OFFSET+7];
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+ }
+ }
return NULL;
}
diff --git a/girepository/girwriter.c b/girepository/girwriter.c
index 56d61b23..bf7ea9dc 100644
--- a/girepository/girwriter.c
+++ b/girepository/girwriter.c
@@ -757,24 +757,6 @@ write_constant_value (const gchar *namespace,
case GI_TYPE_TAG_UINT64:
xml_printf (file, "%" G_GUINT64_FORMAT, value->v_uint64);
break;
- case GI_TYPE_TAG_INT:
- xml_printf (file, "%d", value->v_int);
- break;
- case GI_TYPE_TAG_UINT:
- xml_printf (file, "%d", value->v_uint);
- break;
- case GI_TYPE_TAG_LONG:
- xml_printf (file, "%ld", value->v_long);
- break;
- case GI_TYPE_TAG_ULONG:
- xml_printf (file, "%ld", value->v_ulong);
- break;
- case GI_TYPE_TAG_SSIZE:
- xml_printf (file, "%zd", value->v_ssize);
- break;
- case GI_TYPE_TAG_SIZE:
- xml_printf (file, "%zd", value->v_size);
- break;
case GI_TYPE_TAG_FLOAT:
xml_printf (file, "%f", value->v_float);
break;
diff --git a/girepository/gitypelib.c b/girepository/gitypelib.c
index 06a38d24..0741bcb1 100644
--- a/girepository/gitypelib.c
+++ b/girepository/gitypelib.c
@@ -909,17 +909,8 @@ validate_constant_blob (GTypelib *typelib,
4, /* UINT32 */
8, /* INT64 */
8, /* UINT64 */
- sizeof (gshort),
- sizeof (gushort),
- sizeof (gint),
- sizeof (guint),
- sizeof (glong),
- sizeof (gulong),
- sizeof (gssize),
- sizeof (gsize),
sizeof (gfloat),
sizeof (gdouble),
- sizeof (time_t),
0, /* GTYPE */
0, /* UTF8 */
0, /* FILENAME */
@@ -933,6 +924,8 @@ validate_constant_blob (GTypelib *typelib,
ConstantBlob *blob;
SimpleTypeBlob *type;
+ g_assert (G_N_ELEMENTS (value_size) == GI_TYPE_TAG_ERROR + 1);
+
if (typelib->len < offset + sizeof (ConstantBlob))
{
g_set_error (error,
diff --git a/girepository/gitypes.h b/girepository/gitypes.h
index 5ef64ca1..eb1c1021 100644
--- a/girepository/gitypes.h
+++ b/girepository/gitypes.h
@@ -319,17 +319,8 @@ typedef enum {
* @GI_TYPE_TAG_UINT32: 32-bit unsigned integer
* @GI_TYPE_TAG_INT64: 64-bit signed integer
* @GI_TYPE_TAG_UINT64: 64-bit unsigned integer
- * @GI_TYPE_TAG_SHORT: signed short
- * @GI_TYPE_TAG_USHORT: unsigned hosrt
- * @GI_TYPE_TAG_INT: signed integer
- * @GI_TYPE_TAG_UINT: unsigned integer
- * @GI_TYPE_TAG_LONG: signed long
- * @GI_TYPE_TAG_ULONG: unsigned long
- * @GI_TYPE_TAG_SSIZE: ssize_t
- * @GI_TYPE_TAG_SIZE: size_t
* @GI_TYPE_TAG_FLOAT: float
* @GI_TYPE_TAG_DOUBLE: double floating point
- * @GI_TYPE_TAG_TIME_T: time_t
* @GI_TYPE_TAG_GTYPE: a #GType
* @GI_TYPE_TAG_UTF8: a UTF-8 encoded string
* @GI_TYPE_TAG_FILENAME: a filename, encoded in the same encoding
@@ -355,31 +346,32 @@ typedef enum {
GI_TYPE_TAG_UINT32 = 7,
GI_TYPE_TAG_INT64 = 8,
GI_TYPE_TAG_UINT64 = 9,
- GI_TYPE_TAG_SHORT = 10,
- GI_TYPE_TAG_USHORT = 11,
- GI_TYPE_TAG_INT = 12,
- GI_TYPE_TAG_UINT = 13,
- GI_TYPE_TAG_LONG = 14,
- GI_TYPE_TAG_ULONG = 15,
- GI_TYPE_TAG_SSIZE = 16,
- GI_TYPE_TAG_SIZE = 17,
- GI_TYPE_TAG_FLOAT = 18,
- GI_TYPE_TAG_DOUBLE = 19,
- GI_TYPE_TAG_TIME_T = 20,
- GI_TYPE_TAG_GTYPE = 21,
- GI_TYPE_TAG_UTF8 = 22,
- GI_TYPE_TAG_FILENAME = 23,
+ GI_TYPE_TAG_FLOAT = 10,
+ GI_TYPE_TAG_DOUBLE = 11,
+ GI_TYPE_TAG_GTYPE = 12,
+ GI_TYPE_TAG_UTF8 = 13,
+ GI_TYPE_TAG_FILENAME = 14,
/* Non-basic types */
- GI_TYPE_TAG_ARRAY = 24,
- GI_TYPE_TAG_INTERFACE = 25,
- GI_TYPE_TAG_GLIST = 26,
- GI_TYPE_TAG_GSLIST = 27,
- GI_TYPE_TAG_GHASH = 28,
- GI_TYPE_TAG_ERROR = 29
+ GI_TYPE_TAG_ARRAY = 15,
+ GI_TYPE_TAG_INTERFACE = 16,
+ GI_TYPE_TAG_GLIST = 17,
+ GI_TYPE_TAG_GSLIST = 18,
+ GI_TYPE_TAG_GHASH = 19,
+ GI_TYPE_TAG_ERROR = 20
/* Note - there is only room currently for 32 tags.
* See docs/typelib-format.txt SimpleTypeBlob definition */
} GITypeTag;
+#define GI_TYPE_TAG_N_TYPES (GI_TYPE_TAG_ERROR+1)
+
+/* These were removed and no longer appear in the typelib;
+ * instead, the machine-specific versions like INT32 are
+ * always used.
+ */
+#define GI_TYPE_TAG_SHORT GI_TYPE_TAG_SHORT_WAS_REMOVED
+#define GI_TYPE_TAG_INT GI_TYPE_TAG_INT_WAS_REMOVED
+#define GI_TYPE_TAG_LONG GI_TYPE_TAG_LONG_WAS_REMOVED
+
/**
* GIArrayType:
* @GI_ARRAY_TYPE_C: a C array, char[] for instance
diff --git a/giscanner/ast.py b/giscanner/ast.py
index a70f2d8b..3678e8ce 100644
--- a/giscanner/ast.py
+++ b/giscanner/ast.py
@@ -48,9 +48,8 @@ TYPE_INT64 = 'int64'
TYPE_UINT64 = 'uint64'
TYPE_LONG = 'long'
TYPE_ULONG = 'ulong'
-TYPE_SSIZET = 'ssize_t'
-TYPE_SIZET = 'size_t'
-TYPE_TIMET = 'time_t'
+TYPE_SIZET = 'gsize'
+TYPE_SSIZET = 'gssize'
TYPE_GTYPE = 'GType'
TYPE_FLOAT = 'float'
TYPE_DOUBLE = 'double'
@@ -61,7 +60,7 @@ BASIC_GIR_TYPES = [TYPE_BOOLEAN, TYPE_INT8, TYPE_UINT8, TYPE_INT16,
TYPE_UINT16, TYPE_INT32, TYPE_UINT32, TYPE_INT64,
TYPE_UINT64, TYPE_SHORT, TYPE_USHORT, TYPE_INT,
TYPE_UINT, TYPE_LONG, TYPE_ULONG, TYPE_SSIZET,
- TYPE_SIZET, TYPE_FLOAT, TYPE_DOUBLE, TYPE_TIMET,
+ TYPE_SIZET, TYPE_FLOAT, TYPE_DOUBLE,
TYPE_GTYPE]
GIR_TYPES = [TYPE_NONE, TYPE_ANY]
GIR_TYPES.extend(BASIC_GIR_TYPES)
@@ -117,12 +116,7 @@ type_names['char*'] = TYPE_STRING
type_names['void*'] = TYPE_ANY
type_names['void'] = TYPE_NONE
-# Unix types that we special case here (and that have their own introspection
-# type tag) because of wide use in GLib.
-type_names['size_t'] = TYPE_SIZET
-type_names['ssize_t'] = TYPE_SSIZET
-
-# One off C unix type definitions; note some of these may be GNU Libc
+# Random C unix type definitions; note some of these may be GNU Libc
# specific. If someone is actually bitten by this, feel free to do
# the required configure goop to determine their size and replace
# here.
@@ -133,6 +127,8 @@ type_names['ssize_t'] = TYPE_SSIZET
# methods are added under #ifdefs inside GLib itself. We could just (skip)
# the relevant methods, but on the other hand, since these types are just
# integers it's easy enough to expand them.
+type_names['size_t'] = TYPE_SIZET
+type_names['time_t'] = TYPE_LONG
type_names['off_t'] = TYPE_SIZET
type_names['pid_t'] = TYPE_INT
type_names['uid_t'] = TYPE_UINT
diff --git a/tests/scanner/BarApp-1.0-expected.tgir b/tests/scanner/BarApp-1.0-expected.tgir
deleted file mode 100644
index 45ceae06..00000000
--- a/tests/scanner/BarApp-1.0-expected.tgir
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0"?>
-<repository version="1.0"
- xmlns="http://www.gtk.org/introspection/core/1.0"
- xmlns:c="http://www.gtk.org/introspection/c/1.0"
- xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
- <include name="GObject" version="2.0"/>
- <include name="GLib" version="2.0"/>
- <namespace name="BarApp" version="1.0" shared-library="" c:prefix="Bar">
- <class name="Baz" parent="GObject.Object" glib:type-struct="BazClass" glib:type-name="BarBaz" glib:get-type="bar_baz_get_type">
- <field name="parent_instance">
- <type name="GObject.Object"/>
- </field>
- </class>
- <record name="BazClass" glib:is-gtype-struct="1">
- <field name="parent_class">
- <type name="GObject.ObjectClass"/>
- </field>
- </record>
- <function name="func" c:identifier="barapp_func">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- </function>
- <function name="func2" c:identifier="barapp_func2">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="x" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <type name="double"/>
- </parameter>
- </parameters>
- </function>
- </namespace>
-</repository>
diff --git a/tests/scanner/GtkFrob-1.0-expected.tgir b/tests/scanner/GtkFrob-1.0-expected.tgir
deleted file mode 100644
index 078d65f6..00000000
--- a/tests/scanner/GtkFrob-1.0-expected.tgir
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0"?>
-<repository version="1.0"
- xmlns="http://www.gtk.org/introspection/core/1.0"
- xmlns:c="http://www.gtk.org/introspection/c/1.0"
- xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
- <include name="GObject" version="2.0"/>
- <include name="GLib" version="2.0"/>
- <namespace name="GtkFrob" version="1.0" shared-library="libgtkfrob.so" c:prefix="Gtk">
- <function name="language_manager_get_default" c:identifier="gtk_frob_language_manager_get_default">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- </function>
- </namespace>
-</repository>
diff --git a/tests/scanner/Makefile.am b/tests/scanner/Makefile.am
index 522f8a56..42a7f720 100644
--- a/tests/scanner/Makefile.am
+++ b/tests/scanner/Makefile.am
@@ -29,18 +29,15 @@ if OS_WIN32
AM_LDFLAGS += -no-undefined
endif
-# .gir --[scanner]-> .typelib --[generate]-> .tgir
+# .gir --[scanner]-> .typelib
GIRS =
TYPELIBS = $(GIRS:.gir=.typelib)
CHECKGIRS = $(GIRS:.gir=.gir.check)
EXPECTEDGIRS = $(GIRS:.gir=-expected.gir)
-TGIRS = $(GIRS:.gir=.tgir)
-CHECKTGIRS = $(GIRS:.gir=.tgir.check)
-EXPECTEDTGIRS = $(GIRS:.gir=-expected.tgir)
INTROSPECTION_GIRS = $(GIRS)
CLEANFILES = $(TYPELIBS) $(GIRS)
-BUILT_SOURCES = $(TYPELIBS) $(GIRS) $(TGIRS)
-EXTRA_DIST = $(EXPECTEDGIRS) $(EXPECTEDTGIRS)
+BUILT_SOURCES = $(TYPELIBS) $(GIRS)
+EXTRA_DIST = $(EXPECTEDGIRS)
annotation-1.0.gir: utility-1.0.gir libannotation.la
annotation_1_0_gir_PACKAGES = gobject-2.0
@@ -110,28 +107,7 @@ post-check:
%.gir.check: %.gir
@diff -u -U 10 $(srcdir)/$*-expected.gir $*.gir && echo " TEST $*.gir"
-# stop %.typelib rule from building %-expected.tgir (via %-expected.typelib)
-%-expected.typelib:
- @true
-
-%.tgir: %.typelib $(top_builddir)/tools/g-ir-generate$(EXEEXT) Makefile
- $(AM_V_GEN) $(top_builddir)/tools/g-ir-generate --includedir=. --includedir=$(top_builddir)/gir $< -o $@
-
-%.tgir.check: %.tgir
- @diff -u -U 10 $(srcdir)/$*-expected.tgir $*.tgir; \
- if test "$$?" = "0"; then \
- echo " TEST $*.tgir"; \
- rm -f $*.tgir; \
- else \
- exit 1; \
- fi
-
-distclean-local:
- @if test "$(top_builddir)" != "$(top_srcdir)"; then \
- rm -f $(top_builddir)/tests/scanner/*.tgir; \
- fi
-
check-local: pre-check
-check-local: $(CHECKGIRS) $(CHECKTGIRS) $(TYPELIBS)
+check-local: $(CHECKGIRS) $(TYPELIBS)
check-local: post-check
diff --git a/tests/scanner/annotation-1.0-expected.gir b/tests/scanner/annotation-1.0-expected.gir
index 61003ad1..38506689 100644
--- a/tests/scanner/annotation-1.0-expected.gir
+++ b/tests/scanner/annotation-1.0-expected.gir
@@ -407,7 +407,7 @@ intentionally similar example to gtk_container_get_children</doc>
</parameter>
<parameter name="length" transfer-ownership="none">
<doc xml:whitespace="preserve">Length of the data</doc>
- <type name="size_t" c:type="gsize"/>
+ <type name="gsize" c:type="gsize"/>
</parameter>
</parameters>
</method>
@@ -425,7 +425,7 @@ intentionally similar example to gtk_container_get_children</doc>
</parameter>
<parameter name="length" transfer-ownership="none">
<doc xml:whitespace="preserve">Length of the data</doc>
- <type name="size_t" c:type="gsize"/>
+ <type name="gsize" c:type="gsize"/>
</parameter>
</parameters>
</method>
@@ -444,7 +444,7 @@ type.</doc>
</parameter>
<parameter name="length" transfer-ownership="none">
<doc xml:whitespace="preserve">Length of the data</doc>
- <type name="size_t" c:type="gsize"/>
+ <type name="gsize" c:type="gsize"/>
</parameter>
</parameters>
</method>
diff --git a/tests/scanner/annotation-1.0-expected.tgir b/tests/scanner/annotation-1.0-expected.tgir
deleted file mode 100644
index d8dfc381..00000000
--- a/tests/scanner/annotation-1.0-expected.tgir
+++ /dev/null
@@ -1,563 +0,0 @@
-<?xml version="1.0"?>
-<repository version="1.0"
- xmlns="http://www.gtk.org/introspection/core/1.0"
- xmlns:c="http://www.gtk.org/introspection/c/1.0"
- xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
- <include name="utility" version="1.0"/>
- <include name="GObject" version="2.0"/>
- <include name="GLib" version="2.0"/>
- <namespace name="annotation" version="1.0" shared-library="libannotation.so" c:prefix="annotation">
- <callback name="Callback">
- <return-value transfer-ownership="none">
- <type name="int"/>
- </return-value>
- <parameters>
- <parameter name="in" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="ForeachFunc">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object"/>
- </parameter>
- <parameter name="item" transfer-ownership="none">
- <type name="utf8"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="2">
- <type name="any"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="ListCallback">
- <return-value transfer-ownership="container">
- <type name="GLib.List">
- <type name="utf8"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="in" transfer-ownership="none">
- <type name="GLib.List">
- <type name="utf8"/>
- </type>
- </parameter>
- </parameters>
- </callback>
- <callback name="NotifyFunc">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none" closure="0">
- <type name="any"/>
- </parameter>
- </parameters>
- </callback>
- <class name="Object" parent="GObject.Object" glib:type-struct="ObjectClass" glib:type-name="AnnotationObject" glib:get-type="annotation_object_get_type">
- <attribute name="org.example.Test" value="cows"/>
- <field name="parent_instance">
- <type name="GObject.Object"/>
- </field>
- <method name="method" c:identifier="annotation_object_method">
- <return-value transfer-ownership="none">
- <type name="int"/>
- </return-value>
- </method>
- <method name="out" c:identifier="annotation_object_out">
- <return-value transfer-ownership="none">
- <type name="int"/>
- </return-value>
- <parameters>
- <parameter name="outarg" transfer-ownership="full" direction="out" caller-allocates="0">
- <type name="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="create_object" c:identifier="annotation_object_create_object">
- <return-value transfer-ownership="full">
- <type name="GObject.Object"/>
- </return-value>
- </method>
- <method name="allow_none" c:identifier="annotation_object_allow_none">
- <return-value transfer-ownership="full">
- <type name="GObject.Object"/>
- </return-value>
- <parameters>
- <parameter name="somearg" transfer-ownership="none" allow-none="1">
- <type name="utf8"/>
- </parameter>
- </parameters>
- </method>
- <method name="notrans" c:identifier="annotation_object_notrans">
- <return-value transfer-ownership="none">
- <type name="GObject.Object"/>
- </return-value>
- </method>
- <method name="inout" c:identifier="annotation_object_inout">
- <return-value transfer-ownership="none">
- <type name="int"/>
- </return-value>
- <parameters>
- <parameter name="inoutarg" transfer-ownership="full" direction="inout">
- <type name="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="inout2" c:identifier="annotation_object_inout2">
- <return-value transfer-ownership="none">
- <type name="int"/>
- </return-value>
- <parameters>
- <parameter name="inoutarg" transfer-ownership="full" direction="inout">
- <type name="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="inout3" c:identifier="annotation_object_inout3">
- <return-value transfer-ownership="none">
- <type name="int"/>
- </return-value>
- <parameters>
- <parameter name="inoutarg" transfer-ownership="full" direction="inout" allow-none="1">
- <type name="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="in" c:identifier="annotation_object_in">
- <return-value transfer-ownership="none">
- <type name="int"/>
- </return-value>
- <parameters>
- <parameter name="inarg" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="calleeowns" c:identifier="annotation_object_calleeowns">
- <return-value transfer-ownership="none">
- <type name="int"/>
- </return-value>
- <parameters>
- <parameter name="toown" transfer-ownership="full" direction="out" caller-allocates="0">
- <type name="GObject.Object"/>
- </parameter>
- </parameters>
- </method>
- <method name="calleesowns" c:identifier="annotation_object_calleesowns">
- <return-value transfer-ownership="none">
- <type name="int"/>
- </return-value>
- <parameters>
- <parameter name="toown1" transfer-ownership="full" direction="out" caller-allocates="0">
- <type name="GObject.Object"/>
- </parameter>
- <parameter name="toown2" transfer-ownership="none" direction="out" caller-allocates="0">
- <type name="GObject.Object"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_strings" c:identifier="annotation_object_get_strings">
- <return-value transfer-ownership="full">
- <type name="GLib.List">
- <type name="utf8"/>
- </type>
- </return-value>
- </method>
- <method name="get_hash" c:identifier="annotation_object_get_hash">
- <return-value transfer-ownership="full">
- <type name="GLib.HashTable">
- <type name="utf8"/>
- <type name="GObject.Object"/>
- </type>
- </return-value>
- </method>
- <method name="with_voidp" c:identifier="annotation_object_with_voidp">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <type name="any"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_objects" c:identifier="annotation_object_get_objects">
- <return-value transfer-ownership="container">
- <type name="GLib.SList">
- <type name="Object"/>
- </type>
- </return-value>
- </method>
- <method name="use_buffer" c:identifier="annotation_object_use_buffer">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="bytes" transfer-ownership="none">
- <array zero-terminated="1">
- <type name="uint8"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="compute_sum" c:identifier="annotation_object_compute_sum">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="nums" transfer-ownership="none">
- <array zero-terminated="1">
- <type name="int"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="compute_sum_n" c:identifier="annotation_object_compute_sum_n">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="nums" transfer-ownership="none">
- <array length="2">
- <type name="int"/>
- </array>
- </parameter>
- <parameter name="n_nums" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="compute_sum_nz" c:identifier="annotation_object_compute_sum_nz">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="nums" transfer-ownership="none">
- <array length="2">
- <type name="int"/>
- </array>
- </parameter>
- <parameter name="n_nums" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_args" c:identifier="annotation_object_parse_args">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="argc" transfer-ownership="full" direction="inout">
- <type name="int"/>
- </parameter>
- <parameter name="argv" transfer-ownership="full" direction="inout">
- <array length="1">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="string_out" c:identifier="annotation_object_string_out">
- <return-value transfer-ownership="none">
- <type name="boolean"/>
- </return-value>
- <parameters>
- <parameter name="str_out" transfer-ownership="full" direction="out" caller-allocates="0">
- <type name="utf8"/>
- </parameter>
- </parameters>
- </method>
- <method name="foreach" c:identifier="annotation_object_foreach">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="func" transfer-ownership="none" scope="call" closure="2">
- <type name="ForeachFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_data" c:identifier="annotation_object_set_data">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <array length="2">
- <type name="uint8"/>
- </array>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <type name="size"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_data2" c:identifier="annotation_object_set_data2">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <array length="2">
- <type name="int8"/>
- </array>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <type name="size"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_data3" c:identifier="annotation_object_set_data3">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <array length="2">
- <type name="uint8"/>
- </array>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <type name="size"/>
- </parameter>
- </parameters>
- </method>
- <method name="do_not_use" c:identifier="annotation_object_do_not_use" deprecated="1">
- <return-value transfer-ownership="full">
- <type name="GObject.Object"/>
- </return-value>
- </method>
- <method name="watch" c:identifier="annotation_object_watch_full">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="func" transfer-ownership="none" scope="notified" closure="2" destroy="3">
- <type name="ForeachFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any"/>
- </parameter>
- <parameter name="destroy" transfer-ownership="none" scope="call">
- <type name="GLib.DestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="extra_annos" c:identifier="annotation_object_extra_annos">
- <attribute name="org.foobar" value="testvalue"/>
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- </method>
- <property name="function-property" writable="1" construct="1" transfer-ownership="none">
- <type name="Callback"/>
- </property>
- <property name="string-property" writable="1" construct="1" transfer-ownership="none">
- <type name="utf8"/>
- </property>
- <glib:signal name="attribute-signal" when="LAST">
- <return-value transfer-ownership="full">
- <attribute name="some.annotation.foo3" value="val3"/>
- <type name="utf8"/>
- </return-value>
- <parameters>
- <parameter name="arg1" transfer-ownership="none">
- <attribute name="some.annotation.foo1" value="val1"/>
- <type name="utf8"/>
- </parameter>
- <parameter name="arg2" transfer-ownership="none">
- <attribute name="some.annotation.foo2" value="val2"/>
- <type name="utf8"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="doc-empty-arg-parsing" when="LAST">
- <return-value transfer-ownership="full">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="any"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="list-signal" when="LAST">
- <return-value transfer-ownership="full">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="container">
- <type name="GLib.List">
- <type name="utf8"/>
- </type>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="string-signal" when="LAST">
- <return-value transfer-ownership="full">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <type name="utf8"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="ObjectClass" glib:is-gtype-struct="1">
- <field name="parent_class">
- <type name="GObject.ObjectClass"/>
- </field>
- </record>
- <record name="Struct">
- <field name="objects" writable="1">
- <array fixed-size="10">
- <type name="Object"/>
- </array>
- </field>
- </record>
- <function name="attribute_func" c:identifier="annotation_attribute_func">
- <return-value transfer-ownership="none">
- <attribute name="yet.another.annotation" value="another_value"/>
- <attribute name="some.other.annotation" value="value2"/>
- <type name="int"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <attribute name="another.annotation" value="blahvalue"/>
- <attribute name="some.annotation" value="value"/>
- <type name="utf8"/>
- </parameter>
- </parameters>
- </function>
- <function name="custom_destroy" c:identifier="annotation_custom_destroy">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="callback" transfer-ownership="none" scope="call" closure="2" destroy="1">
- <type name="Callback"/>
- </parameter>
- <parameter name="destroy" transfer-ownership="none" scope="call">
- <type name="NotifyFunc"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_source_file" c:identifier="annotation_get_source_file">
- <return-value transfer-ownership="full">
- <type name="filename"/>
- </return-value>
- </function>
- <function name="init" c:identifier="annotation_init">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="argc" transfer-ownership="full" direction="inout">
- <type name="int"/>
- </parameter>
- <parameter name="argv" transfer-ownership="full" direction="inout">
- <array length="0">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="invalid_annotation" c:identifier="annotation_invalid_annotation">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="foo" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </function>
- <function name="ptr_array" c:identifier="annotation_ptr_array">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="array" transfer-ownership="none">
- <array name="GLib.PtrArray">
- <type name="GLib.Value"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="return_array" c:identifier="annotation_return_array">
- <return-value transfer-ownership="full">
- <array length="0">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="length" transfer-ownership="full" direction="out" caller-allocates="0">
- <type name="int"/>
- </parameter>
- </parameters>
- </function>
- <function name="set_source_file" c:identifier="annotation_set_source_file">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="fname" transfer-ownership="none">
- <type name="filename"/>
- </parameter>
- </parameters>
- </function>
- <function name="string_array_length" c:identifier="annotation_string_array_length">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="n_properties" transfer-ownership="none">
- <type name="uint"/>
- </parameter>
- <parameter name="properties" transfer-ownership="none">
- <array length="0">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="string_zero_terminated" c:identifier="annotation_string_zero_terminated">
- <return-value transfer-ownership="full">
- <array zero-terminated="1">
- <type name="utf8"/>
- </array>
- </return-value>
- </function>
- <function name="string_zero_terminated_out" c:identifier="annotation_string_zero_terminated_out">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="out" transfer-ownership="full" direction="inout">
- <array zero-terminated="1">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="versioned" c:identifier="annotation_versioned">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- </function>
- </namespace>
-</repository>
diff --git a/tests/scanner/drawable-1.0-expected.tgir b/tests/scanner/drawable-1.0-expected.tgir
deleted file mode 100644
index 996e9cd5..00000000
--- a/tests/scanner/drawable-1.0-expected.tgir
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0"?>
-<repository version="1.0"
- xmlns="http://www.gtk.org/introspection/core/1.0"
- xmlns:c="http://www.gtk.org/introspection/c/1.0"
- xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
- <include name="utility" version="1.0"/>
- <include name="GObject" version="2.0"/>
- <include name="GLib" version="2.0"/>
- <namespace name="drawable" version="1.0" shared-library="libdrawable.so" c:prefix="drawable">
- <class name="TestDrawable" parent="GObject.Object" glib:type-struct="TestDrawableClass" abstract="1" glib:type-name="TestDrawable" glib:get-type="test_drawable_get_type">
- <field name="parent_instance">
- <type name="GObject.Object"/>
- </field>
- <method name="do_foo" c:identifier="test_drawable_do_foo">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="x" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_origin" c:identifier="test_drawable_get_origin">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="x" transfer-ownership="full" direction="out" caller-allocates="0">
- <type name="int"/>
- </parameter>
- <parameter name="y" transfer-ownership="full" direction="out" caller-allocates="0">
- <type name="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_size" c:identifier="test_drawable_get_size">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="width" transfer-ownership="full" direction="out" caller-allocates="0">
- <type name="uint"/>
- </parameter>
- <parameter name="height" transfer-ownership="full" direction="out" caller-allocates="0">
- <type name="uint"/>
- </parameter>
- </parameters>
- </method>
- <method name="do_foo_maybe_throw" c:identifier="test_drawable_do_foo_maybe_throw" throws="1">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="x" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </method>
- </class>
- <record name="TestDrawableClass" glib:is-gtype-struct="1">
- <field name="parent_class">
- <type name="GObject.ObjectClass"/>
- </field>
- </record>
- <record name="TestPixmapObjectClass">
- <field name="parent_class" writable="1">
- <type name="TestDrawableClass"/>
- </field>
- </record>
- </namespace>
-</repository>
diff --git a/tests/scanner/foo-1.0-expected.gir b/tests/scanner/foo-1.0-expected.gir
index df14d235..80d11e6b 100644
--- a/tests/scanner/foo-1.0-expected.gir
+++ b/tests/scanner/foo-1.0-expected.gir
@@ -405,7 +405,7 @@ uses a C sugar return type.</doc>
</return-value>
<parameters>
<parameter name="time" transfer-ownership="none">
- <type name="time_t" c:type="time_t"/>
+ <type name="long" c:type="time_t"/>
</parameter>
</parameters>
</method>
diff --git a/tests/scanner/foo-1.0-expected.tgir b/tests/scanner/foo-1.0-expected.tgir
deleted file mode 100644
index f71201f2..00000000
--- a/tests/scanner/foo-1.0-expected.tgir
+++ /dev/null
@@ -1,735 +0,0 @@
-<?xml version="1.0"?>
-<repository version="1.0"
- xmlns="http://www.gtk.org/introspection/core/1.0"
- xmlns:c="http://www.gtk.org/introspection/c/1.0"
- xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
- <include name="utility" version="1.0"/>
- <include name="Gio" version="2.0"/>
- <include name="GObject" version="2.0"/>
- <include name="GLib" version="2.0"/>
- <namespace name="foo" version="1.0" shared-library="libfoo.so" c:prefix="foo">
- <enumeration name="ASingle">
- <member name="some_single_enum" value="0"/>
- </enumeration>
- <enumeration name="AddressType">
- <member name="invalid" value="0"/>
- <member name="ipv4" value="1"/>
- <member name="ipv6" value="2"/>
- </enumeration>
- <record name="BRect" glib:type-name="FooBRect" glib:get-type="foo_brect_get_type">
- <field name="x" writable="1">
- <type name="double"/>
- </field>
- <field name="y" writable="1">
- <type name="double"/>
- </field>
- <constructor name="new" c:identifier="foo_brect_new">
- <return-value transfer-ownership="full">
- <type name="BRect"/>
- </return-value>
- <parameters>
- <parameter name="x" transfer-ownership="none">
- <type name="double"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <type name="double"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="add" c:identifier="foo_brect_add">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="b2" transfer-ownership="none">
- <type name="BRect"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <union name="BUnion" type-name="FooBUnion" get-type="foo_bunion_get_type">
- <field name="type" writable="1">
- <type name="int"/>
- </field>
- <field name="v" writable="1">
- <type name="double"/>
- </field>
- <field name="rect" writable="1">
- <type name="BRect"/>
- </field>
- <constructor name="new" c:identifier="foo_bunion_new">
- <return-value transfer-ownership="full">
- <type name="BUnion"/>
- </return-value>
- </constructor>
- <method name="get_contained_type" c:identifier="foo_bunion_get_contained_type">
- <return-value transfer-ownership="none">
- <type name="int"/>
- </return-value>
- </method>
- </union>
- <record name="Boxed" glib:type-name="FooBoxed" glib:get-type="foo_boxed_get_type">
- <constructor name="new" c:identifier="foo_boxed_new">
- <return-value transfer-ownership="full">
- <type name="Boxed"/>
- </return-value>
- </constructor>
- <method name="method" c:identifier="foo_boxed_method">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- </method>
- </record>
- <class name="Buffer" parent="Object" glib:type-struct="BufferClass" glib:type-name="FooBuffer" glib:get-type="foo_buffer_get_type">
- <implements name="Interface"/>
- <method name="some_method" c:identifier="foo_buffer_some_method">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- </method>
- </class>
- <record name="BufferClass" glib:is-gtype-struct="1"/>
- <callback name="Callback">
- <return-value transfer-ownership="none">
- <type name="boolean"/>
- </return-value>
- <parameters>
- <parameter name="foo" transfer-ownership="none">
- <type name="Object"/>
- </parameter>
- <parameter name="b" transfer-ownership="none">
- <type name="boolean"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any"/>
- </parameter>
- </parameters>
- </callback>
- <record name="DBusData" glib:type-name="FooDBusData" glib:get-type="foo_dbus_data_get_type">
- <method name="method" c:identifier="foo_dbus_data_method">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- </method>
- </record>
- <constant name="DEFINE_SHOULD_BE_EXPOSED" value="should be exposed">
- <type name="utf8"/>
- </constant>
- <enumeration name="EnumFullname">
- <member name="one" value="1"/>
- <member name="two" value="2"/>
- <member name="three" value="3"/>
- </enumeration>
- <enumeration name="EnumNoType">
- <member name="un" value="1"/>
- <member name="deux" value="2"/>
- <member name="trois" value="3"/>
- <member name="neuf" value="9"/>
- </enumeration>
- <enumeration name="EnumType" glib:type-name="FooEnumType" glib:get-type="foo_enum_type_get_type">
- <member name="alpha" value="0"/>
- <member name="beta" value="1"/>
- <member name="delta" value="2"/>
- </enumeration>
- <enumeration name="Error" glib:type-name="FooError" glib:get-type="foo_error_get_type">
- <member name="good" value="0"/>
- <member name="bad" value="1"/>
- <member name="ugly" value="2"/>
- </enumeration>
- <union name="Event">
- <field name="type" writable="1">
- <type name="int"/>
- </field>
- <field name="any" writable="1">
- <type name="EventAny"/>
- </field>
- <field name="expose" writable="1">
- <type name="EventExpose"/>
- </field>
- </union>
- <record name="EventAny">
- <field name="send_event" writable="1">
- <type name="int8"/>
- </field>
- </record>
- <record name="EventExpose">
- <field name="send_event" writable="1">
- <type name="int8"/>
- </field>
- <field name="count" writable="1">
- <type name="int"/>
- </field>
- </record>
- <bitfield name="FlagsNoType">
- <member name="ett" value="1"/>
- <member name="tva" value="2"/>
- <member name="fyra" value="4"/>
- </bitfield>
- <bitfield name="FlagsType" glib:type-name="FooFlagsType" glib:get-type="foo_flags_type_get_type">
- <member name="first" value="1"/>
- <member name="second" value="2"/>
- <member name="third" value="4"/>
- </bitfield>
- <record name="ForeignStruct" foreign="1">
- <field name="foo" writable="1">
- <type name="int"/>
- </field>
- </record>
- <interface name="Interface" glib:type-name="FooInterface" glib:get-type="foo_interface_get_type" glib:type-struct="InterfaceIface">
- <method name="do_foo" c:identifier="foo_interface_do_foo">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="x" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </method>
- <virtual-method name="do_foo" offset="0" invoker="do_foo">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="x" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </virtual-method>
- </interface>
- <record name="InterfaceIface" glib:is-gtype-struct="1">
- <field name="parent_iface">
- <type name="GObject.TypeInterface"/>
- </field>
- <field name="do_foo">
- <callback name="do_foo">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <type name="Interface"/>
- </parameter>
- <parameter name="x" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="Object" parent="GObject.Object" glib:type-struct="ObjectClass" glib:type-name="FooObject" glib:get-type="foo_object_get_type">
- <implements name="Interface"/>
- <field name="parent_instance">
- <type name="GObject.Object"/>
- </field>
- <field name="some_int">
- <type name="int"/>
- </field>
- <constructor name="new" c:identifier="foo_object_new">
- <return-value transfer-ownership="full">
- <type name="Object"/>
- </return-value>
- </constructor>
- <function name="static_meth" c:identifier="foo_object_static_meth">
- <return-value transfer-ownership="none">
- <type name="int"/>
- </return-value>
- </function>
- <function name="get_default" c:identifier="foo_object_get_default">
- <return-value transfer-ownership="full">
- <type name="Subobject"/>
- </return-value>
- </function>
- <method name="external_type" c:identifier="foo_object_external_type">
- <return-value transfer-ownership="full">
- <type name="utility.Object"/>
- </return-value>
- </method>
- <method name="various" c:identifier="foo_object_various">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <type name="any"/>
- </parameter>
- <parameter name="some_type" transfer-ownership="none">
- <type name="GType"/>
- </parameter>
- </parameters>
- </method>
- <method name="with_tdef" c:identifier="foo_object_with_tdef">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="blah" transfer-ownership="none">
- <type name="GLib.SList">
- <type name="any"/>
- </type>
- </parameter>
- </parameters>
- </method>
- <method name="new_cookie" c:identifier="foo_object_new_cookie">
- <return-value transfer-ownership="full">
- <type name="any"/>
- </return-value>
- <parameters>
- <parameter name="target" transfer-ownership="none">
- <type name="utf8"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_it_time_yet" c:identifier="foo_object_is_it_time_yet">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="time" transfer-ownership="none">
- <type name="time_t"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_name" c:identifier="foo_object_get_name">
- <return-value transfer-ownership="none">
- <type name="utf8"/>
- </return-value>
- </method>
- <method name="dup_name" c:identifier="foo_object_dup_name">
- <return-value transfer-ownership="full">
- <type name="utf8"/>
- </return-value>
- </method>
- <method name="handle_glyph" c:identifier="foo_object_handle_glyph">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="glyph" transfer-ownership="none">
- <type name="uint32"/>
- </parameter>
- </parameters>
- </method>
- <method name="virtual_method" c:identifier="foo_object_virtual_method">
- <return-value transfer-ownership="none">
- <type name="boolean"/>
- </return-value>
- <parameters>
- <parameter name="first_param" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="read" c:identifier="foo_object_read">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="offset" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </method>
- <property name="string" writable="1" construct="1" transfer-ownership="none">
- <type name="utf8"/>
- </property>
- <glib:signal name="signal" when="LAST">
- <return-value transfer-ownership="full">
- <type name="utf8"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="GObject.Object"/>
- </parameter>
- <parameter name="p0" transfer-ownership="none">
- <type name="any"/>
- </parameter>
- </parameters>
- </glib:signal>
- <virtual-method name="virtual_method" offset="0" invoker="virtual_method">
- <return-value transfer-ownership="none">
- <type name="boolean"/>
- </return-value>
- <parameters>
- <parameter name="first_param" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="read_fn" offset="0" invoker="read">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="offset" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </virtual-method>
- </class>
- <record name="ObjectClass" glib:is-gtype-struct="1">
- <field name="parent_class">
- <type name="GObject.ObjectClass"/>
- </field>
- <field name="virtual_method">
- <callback name="virtual_method">
- <return-value transfer-ownership="none">
- <type name="boolean"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object"/>
- </parameter>
- <parameter name="first_param" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="read_fn">
- <callback name="read_fn">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_reserved">
- <array fixed-size="4">
- <type name="GObject.Callback"/>
- </array>
- </field>
- </record>
- <constant name="PIE_IS_TASTY" value="3.141590">
- <type name="double"/>
- </constant>
- <record name="Rectangle">
- <field name="x" writable="1">
- <type name="int"/>
- </field>
- <field name="y" writable="1">
- <type name="int"/>
- </field>
- <field name="width" writable="1">
- <type name="int"/>
- </field>
- <field name="height" writable="1">
- <type name="int"/>
- </field>
- <constructor name="new" c:identifier="foo_rectangle_new">
- <return-value transfer-ownership="full">
- <type name="Rectangle"/>
- </return-value>
- <parameters>
- <parameter name="x" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- <parameter name="height" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="add" c:identifier="foo_rectangle_add">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="r2" transfer-ownership="none">
- <type name="Rectangle"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <constant name="SUCCESS_INT" value="4408">
- <type name="int"/>
- </constant>
- <enumeration name="StackLayer">
- <member name="desktop" value="0"/>
- <member name="bottom" value="1"/>
- <member name="normal" value="2"/>
- <member name="top" value="4"/>
- <member name="dock" value="4"/>
- <member name="fullscreen" value="5"/>
- <member name="focused_window" value="6"/>
- <member name="override_redirect" value="7"/>
- <member name="last" value="8"/>
- </enumeration>
- <record name="Struct">
- <field name="priv" writable="1">
- <type name="StructPrivate"/>
- </field>
- <field name="member" writable="1">
- <type name="int"/>
- </field>
- </record>
- <record name="StructPrivate"/>
- <interface name="SubInterface" glib:type-name="FooSubInterface" glib:get-type="foo_sub_interface_get_type" glib:type-struct="SubInterfaceIface">
- <prerequisite name="Interface"/>
- <method name="do_bar" c:identifier="foo_sub_interface_do_bar">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- </method>
- <glib:signal name="destroy-event" when="LAST">
- <return-value transfer-ownership="full">
- <type name="none"/>
- </return-value>
- </glib:signal>
- <virtual-method name="do_bar" offset="0" invoker="do_bar">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- </virtual-method>
- </interface>
- <record name="SubInterfaceIface" glib:is-gtype-struct="1">
- <field name="parent_iface">
- <type name="GObject.TypeInterface"/>
- </field>
- <field name="destroy_event">
- <callback name="destroy_event">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <type name="SubInterface"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="do_bar">
- <callback name="do_bar">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <type name="SubInterface"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <class name="Subobject" parent="Object" glib:type-struct="SubobjectClass" abstract="1" glib:type-name="FooSubobject" glib:get-type="foo_subobject_get_type">
- <implements name="Interface"/>
- <field name="parent_instance">
- <type name="Object"/>
- </field>
- <constructor name="new" c:identifier="foo_subobject_new">
- <return-value transfer-ownership="full">
- <type name="Subobject"/>
- </return-value>
- </constructor>
- </class>
- <record name="SubobjectClass" glib:is-gtype-struct="1">
- <field name="parent_class">
- <type name="ObjectClass"/>
- </field>
- </record>
- <record name="ThingWithArray">
- <field name="x" writable="1">
- <type name="int"/>
- </field>
- <field name="y" writable="1">
- <type name="int"/>
- </field>
- <field name="lines" writable="1">
- <array fixed-size="80">
- <type name="int8"/>
- </array>
- </field>
- <field name="data" writable="1">
- <type name="any"/>
- </field>
- </record>
- <union name="Union">
- <field name="foo" writable="1">
- <type name="int"/>
- </field>
- </union>
- <record name="UtilityStruct">
- <field name="bar" writable="1">
- <type name="utility.Struct"/>
- </field>
- </record>
- <function name="async_ready_callback" c:identifier="foo_async_ready_callback">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="cancellable" transfer-ownership="none" allow-none="1">
- <type name="Gio.Cancellable"/>
- </parameter>
- <parameter name="callback" transfer-ownership="none" scope="async" closure="2">
- <type name="Gio.AsyncReadyCallback"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any"/>
- </parameter>
- </parameters>
- </function>
- <function name="destroy_notify_callback" c:identifier="foo_destroy_notify_callback">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="callback" transfer-ownership="none" scope="notified" closure="1" destroy="2">
- <type name="Callback"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any"/>
- </parameter>
- <parameter name="destroy" transfer-ownership="none" scope="call">
- <type name="GLib.DestroyNotify"/>
- </parameter>
- </parameters>
- </function>
- <function name="enum_type_method" c:identifier="foo_enum_type_method">
- <return-value transfer-ownership="none">
- <type name="int"/>
- </return-value>
- <parameters>
- <parameter name="foo_enum" transfer-ownership="none">
- <type name="EnumType"/>
- </parameter>
- </parameters>
- </function>
- <function name="enum_type_returnv" c:identifier="foo_enum_type_returnv">
- <return-value transfer-ownership="full">
- <type name="EnumType"/>
- </return-value>
- <parameters>
- <parameter name="x" transfer-ownership="none">
- <type name="int"/>
- </parameter>
- </parameters>
- </function>
- <function name="init" c:identifier="foo_init">
- <return-value transfer-ownership="none">
- <type name="int"/>
- </return-value>
- </function>
- <function name="method_external_references" c:identifier="foo_method_external_references">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="utility.Object"/>
- </parameter>
- <parameter name="e" transfer-ownership="none">
- <type name="utility.EnumType"/>
- </parameter>
- <parameter name="f" transfer-ownership="none">
- <type name="utility.FlagType"/>
- </parameter>
- <parameter name="s" transfer-ownership="none">
- <type name="utility.Struct"/>
- </parameter>
- </parameters>
- </function>
- <function name="test_array" c:identifier="foo_test_array">
- <return-value transfer-ownership="container">
- <array name="GLib.Array">
- <type name="utf8"/>
- </array>
- </return-value>
- </function>
- <function name="test_const_char_param" c:identifier="foo_test_const_char_param">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="param" transfer-ownership="none">
- <type name="utf8"/>
- </parameter>
- </parameters>
- </function>
- <function name="test_const_char_retval" c:identifier="foo_test_const_char_retval">
- <return-value transfer-ownership="none">
- <type name="utf8"/>
- </return-value>
- </function>
- <function name="test_const_struct_param" c:identifier="foo_test_const_struct_param">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="param" transfer-ownership="none">
- <type name="Struct"/>
- </parameter>
- </parameters>
- </function>
- <function name="test_const_struct_retval" c:identifier="foo_test_const_struct_retval">
- <return-value transfer-ownership="none">
- <type name="Struct"/>
- </return-value>
- </function>
- <function name="test_string_array" c:identifier="foo_test_string_array">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="array" transfer-ownership="none">
- <array zero-terminated="1">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="test_string_array_with_g" c:identifier="foo_test_string_array_with_g">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="array" transfer-ownership="none">
- <array zero-terminated="1">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="test_unsigned_qualifier" c:identifier="foo_test_unsigned_qualifier">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="unsigned_param" transfer-ownership="none">
- <type name="uint"/>
- </parameter>
- </parameters>
- </function>
- <function name="test_unsigned_type" c:identifier="foo_test_unsigned_type">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="unsigned_param" transfer-ownership="none">
- <type name="uint"/>
- </parameter>
- </parameters>
- </function>
- </namespace>
-</repository>
diff --git a/tests/scanner/utility-1.0-expected.gir b/tests/scanner/utility-1.0-expected.gir
index 57ec5dbd..5f8f96c7 100644
--- a/tests/scanner/utility-1.0-expected.gir
+++ b/tests/scanner/utility-1.0-expected.gir
@@ -19,7 +19,7 @@ and/or use gtk-doc annotations. -->
<type name="any" c:type="char*"/>
</field>
<field name="length" writable="1">
- <type name="size_t" c:type="gsize"/>
+ <type name="gsize" c:type="gsize"/>
</field>
</record>
<union name="Byte" c:type="UtilityByte">
diff --git a/tests/scanner/utility-1.0-expected.tgir b/tests/scanner/utility-1.0-expected.tgir
deleted file mode 100644
index e696d7d2..00000000
--- a/tests/scanner/utility-1.0-expected.tgir
+++ /dev/null
@@ -1,123 +0,0 @@
-<?xml version="1.0"?>
-<repository version="1.0"
- xmlns="http://www.gtk.org/introspection/core/1.0"
- xmlns:c="http://www.gtk.org/introspection/c/1.0"
- xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
- <include name="GObject" version="2.0"/>
- <include name="GLib" version="2.0"/>
- <namespace name="utility" version="1.0" shared-library="libutility.so" c:prefix="utility">
- <record name="Buffer">
- <field name="data" writable="1">
- <type name="any"/>
- </field>
- <field name="length" writable="1">
- <type name="size"/>
- </field>
- </record>
- <union name="Byte">
- <field name="value" writable="1">
- <type name="uint8"/>
- </field>
- </union>
- <enumeration name="EnumType">
- <member name="a" value="0"/>
- <member name="b" value="1"/>
- <member name="c" value="2"/>
- </enumeration>
- <callback name="FileFunc">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="path" transfer-ownership="none">
- <type name="utf8"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="1">
- <type name="any"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="FlagType">
- <member name="a" value="1"/>
- <member name="b" value="2"/>
- <member name="c" value="4"/>
- </bitfield>
- <class name="Object" parent="GObject.Object" glib:type-struct="ObjectClass" glib:type-name="UtilityObject" glib:get-type="utility_object_get_type">
- <field name="parent_instance">
- <type name="GObject.Object"/>
- </field>
- <method name="watch_dir" c:identifier="utility_object_watch_dir">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="path" transfer-ownership="none">
- <type name="utf8"/>
- </parameter>
- <parameter name="func" transfer-ownership="none" scope="notified" closure="3" destroy="4">
- <type name="FileFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any"/>
- </parameter>
- <parameter name="destroy" transfer-ownership="none" scope="call">
- <type name="GLib.DestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- </class>
- <record name="ObjectClass" glib:is-gtype-struct="1">
- <field name="parent_class">
- <type name="GObject.ObjectClass"/>
- </field>
- </record>
- <record name="Struct">
- <field name="field" writable="1">
- <type name="int"/>
- </field>
- <field name="bitfield1" writable="1">
- <type name="uint"/>
- </field>
- <field name="bitfield2" writable="1">
- <type name="uint"/>
- </field>
- <field name="data" writable="1">
- <array fixed-size="16">
- <type name="uint8"/>
- </array>
- </field>
- </record>
- <record name="TaggedValue">
- <field name="tag" writable="1">
- <type name="int"/>
- </field>
- </record>
- <union name="Union">
- <field name="pointer" writable="1">
- <type name="utf8"/>
- </field>
- <field name="integer" writable="1">
- <type name="long"/>
- </field>
- <field name="real" writable="1">
- <type name="double"/>
- </field>
- </union>
- <function name="dir_foreach" c:identifier="utility_dir_foreach">
- <return-value transfer-ownership="none">
- <type name="none"/>
- </return-value>
- <parameters>
- <parameter name="path" transfer-ownership="none">
- <type name="utf8"/>
- </parameter>
- <parameter name="func" transfer-ownership="none" scope="call" closure="2">
- <type name="FileFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any"/>
- </parameter>
- </parameters>
- </function>
- </namespace>
-</repository>