From 9bcc2a70a63c030ac2187e8ab8ce1a9411b4c4c2 Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Wed, 13 Mar 2024 08:35:42 +0100 Subject: [PATCH] girparser: Recognize usage of time_t and don't rely on given GIR type --- tests/Makefile.am | 1 + tests/gir/time_t.gir | 18 ++++++++++++++++++ tests/gir/time_t.vapi-expected | 5 +++++ vala/valagirparser.vala | 2 ++ vapi/glib-2.0.vapi | 1 + 5 files changed, 27 insertions(+) create mode 100644 tests/gir/time_t.gir create mode 100644 tests/gir/time_t.vapi-expected diff --git a/tests/Makefile.am b/tests/Makefile.am index d12f6df3a..61f07f3f9 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -894,6 +894,7 @@ TESTS = \ gir/symbol-redefined.gir \ gir/symbol-type-csuffix.gir \ gir/symbol-without-name.gir \ + gir/time_t.gir \ gir/union.gir \ gir/union-transparent.gir \ girwriter/class-final.test \ diff --git a/tests/gir/time_t.gir b/tests/gir/time_t.gir new file mode 100644 index 000000000..73e48f891 --- /dev/null +++ b/tests/gir/time_t.gir @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/tests/gir/time_t.vapi-expected b/tests/gir/time_t.vapi-expected new file mode 100644 index 000000000..80d73ef41 --- /dev/null +++ b/tests/gir/time_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 time_t function (time_t time); +} diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala index ed8f62ef0..e3553941b 100644 --- a/vala/valagirparser.vala +++ b/vala/valagirparser.vala @@ -2851,6 +2851,8 @@ public class Vala.GirParser : CodeVisitor { type_name = "ssize_t"; } else if (ctype != null && ctype.has_prefix ("gintptr")) { type_name = "intptr"; + } else if (ctype != null && ctype.has_prefix ("time_t")) { + type_name = "time_t"; } else { type_name = "long"; } diff --git a/vapi/glib-2.0.vapi b/vapi/glib-2.0.vapi index c78a108d8..aade8a091 100644 --- a/vapi/glib-2.0.vapi +++ b/vapi/glib-2.0.vapi @@ -1018,6 +1018,7 @@ public struct double { } } +//FIXME [GIR (name = "time_t")] [GIR (name = "glong")] [CCode (cheader_filename = "time.h", has_type_id = false, default_value = "0")] [IntegerType (rank = 8)] -- 2.47.2