diff options
-rw-r--r-- | configure.ac | 7 | ||||
-rw-r--r-- | gir/Everything-1.0-expected.gir | 27 | ||||
-rw-r--r-- | gir/GIMarshallingTests-1.0-expected.gir | 32 | ||||
-rw-r--r-- | girepository/giconstantinfo.c | 21 | ||||
-rw-r--r-- | girepository/gifieldinfo.c | 60 | ||||
-rw-r--r-- | girepository/girepository.c | 18 | ||||
-rw-r--r-- | girepository/girffi.c | 29 | ||||
-rw-r--r-- | girepository/girnode.c | 27 | ||||
-rw-r--r-- | girepository/girparser.c | 69 | ||||
-rw-r--r-- | girepository/girwriter.c | 18 | ||||
-rw-r--r-- | girepository/gitypelib.c | 11 | ||||
-rw-r--r-- | girepository/gitypes.h | 50 | ||||
-rw-r--r-- | giscanner/ast.py | 16 | ||||
-rw-r--r-- | tests/scanner/BarApp-1.0-expected.tgir | 38 | ||||
-rw-r--r-- | tests/scanner/GtkFrob-1.0-expected.tgir | 15 | ||||
-rw-r--r-- | tests/scanner/Makefile.am | 32 | ||||
-rw-r--r-- | tests/scanner/annotation-1.0-expected.gir | 6 | ||||
-rw-r--r-- | tests/scanner/annotation-1.0-expected.tgir | 563 | ||||
-rw-r--r-- | tests/scanner/drawable-1.0-expected.tgir | 72 | ||||
-rw-r--r-- | tests/scanner/foo-1.0-expected.gir | 2 | ||||
-rw-r--r-- | tests/scanner/foo-1.0-expected.tgir | 735 | ||||
-rw-r--r-- | tests/scanner/utility-1.0-expected.gir | 2 | ||||
-rw-r--r-- | tests/scanner/utility-1.0-expected.tgir | 123 |
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> |