From: Sergey Bugaev Date: Sun, 1 Mar 2026 15:18:16 +0000 (+0300) Subject: gvariant: Support some more key types for hash table creation X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d06ea09709dbaaea42059f22808ca6bd714ffa6d;p=thirdparty%2Fvala.git gvariant: Support some more key types for hash table creation GLib also has proper hash/equals functions for indirectly stored doubles and 64-bit integers. Use those. --- diff --git a/codegen/valagvariantmodule.vala b/codegen/valagvariantmodule.vala index 9254e6878..8e70ac168 100644 --- a/codegen/valagvariantmodule.vala +++ b/codegen/valagvariantmodule.vala @@ -504,6 +504,12 @@ public class Vala.GVariantModule : GValueModule { } else if (key_type.type_symbol == gvariant_type) { hash_table_new.add_argument (new CCodeIdentifier ("g_variant_hash")); hash_table_new.add_argument (new CCodeIdentifier ("g_variant_equal")); + } else if (key_type.type_symbol == int64_type.type_symbol || key_type.type_symbol == uint64_type.type_symbol) { + hash_table_new.add_argument (new CCodeIdentifier ("g_int64_hash")); + hash_table_new.add_argument (new CCodeIdentifier ("g_int64_equal")); + } else if (key_type.type_symbol == double_type.type_symbol) { + hash_table_new.add_argument (new CCodeIdentifier ("g_double_hash")); + hash_table_new.add_argument (new CCodeIdentifier ("g_double_equal")); } else { hash_table_new.add_argument (new CCodeIdentifier ("g_direct_hash")); hash_table_new.add_argument (new CCodeIdentifier ("g_direct_equal"));