From: Rico Tzschichholz Date: Wed, 13 Mar 2024 07:46:56 +0000 (+0100) Subject: girparser: Recognize usage of off_t and don't rely on given GIR type X-Git-Tag: 0.56.16~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0312a996ab0b019983a87c3054a8d1bfca9e08e6;p=thirdparty%2Fvala.git girparser: Recognize usage of off_t and don't rely on given GIR type --- diff --git a/tests/Makefile.am b/tests/Makefile.am index 61f07f3f9..b2e0d9019 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -885,6 +885,7 @@ TESTS = \ gir/method-array-return.gir \ gir/method-class.gir \ gir/method-nowrapper.gir \ + gir/off_t.gir \ gir/parameter-array-length-type.gir \ gir/parameter-array-out.gir \ gir/parameter-nullable-out-simple-type.gir \ diff --git a/tests/gir/off_t.gir b/tests/gir/off_t.gir new file mode 100644 index 000000000..f295b99eb --- /dev/null +++ b/tests/gir/off_t.gir @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/tests/gir/off_t.vapi-expected b/tests/gir/off_t.vapi-expected new file mode 100644 index 000000000..d147585fb --- /dev/null +++ b/tests/gir/off_t.vapi-expected @@ -0,0 +1,5 @@ +[CCode (cprefix = "Test", gir_namespace = "Test", gir_version = "1.0", lower_case_cprefix = "test_")] +namespace Test { + [CCode (cheader_filename = "test.h")] + public static off_t function (off_t time); +} diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala index e3553941b..dde72ee2b 100644 --- a/vala/valagirparser.vala +++ b/vala/valagirparser.vala @@ -2889,7 +2889,11 @@ public class Vala.GirParser : CodeVisitor { } else if (type_name == "GLib.offset") { type_name = "int64"; } else if (type_name == "gsize") { - type_name = "size_t"; + if (ctype != null && ctype.has_prefix ("off_t")) { + type_name = "off_t"; + } else { + type_name = "size_t"; + } } else if (type_name == "gssize") { type_name = "ssize_t"; } else if (type_name == "guintptr") { diff --git a/vapi/glib-2.0.vapi b/vapi/glib-2.0.vapi index aade8a091..8882177cc 100644 --- a/vapi/glib-2.0.vapi +++ b/vapi/glib-2.0.vapi @@ -1018,6 +1018,13 @@ public struct double { } } +//FIXME [GIR (name = "off_t")] +[GIR (name = "gsize")] +[CCode (cheader_filename = "sys/types.h", has_type_id = false, default_value = "0")] +[IntegerType (rank = 9)] +public struct off_t { +} + //FIXME [GIR (name = "time_t")] [GIR (name = "glong")] [CCode (cheader_filename = "time.h", has_type_id = false, default_value = "0")]